Code Monkey home page Code Monkey logo

em-json-server's Introduction

JSON Server

GitHub

Simulando uma API REST com JSON Server de maneira simples

Passo a passo para simular uma API

  1. Começando com JSON Server
  2. Rotas
  3. Filtros
  4. Paginação
  5. Ordenação

Começando com JSON Server

Instalação

`npm install -g json-server`

Criando o arquivo de banco de dados

Crie um arquivo de nome db.json na pasta do projeto.

Exemplo:

    {
      "produtos": [
        {
          "id": 1,
          "nome": "Hambúrguer",
          "descricao": "Pão, bife de hambúrguer 90g, salada e batata.",
          "preco": 8.5,
          "categoria_id": 1
        },
        {
          "id": 2,
          "nome": "X-Búrguer",
          "descricao": "Pão, bife de hambúrguer 90g, 1 fatia de queijo, salada e batata.",
          "preco": 10.5,
          "categoria_id": 1
        },
        {
          "id": 3,
          "nome": "X-Bacon",
          "descricao": "Pão, bife de hambúrguer 90g, 1 fatia de queijo, 2 fatia de bacon, salada e batata.",
          "preco": 12.5,
          "categoria_id": 1
        },
        {
          "id": 4,
          "nome": "X-Tudo",
          "descricao": "Pão, 2 bifes de hambúrguer 90g, 2 fatias de queijo, 4 fatias de bacon, salada e batata.",
          "preco": 14.5,
          "categoria_id": 1
        },
        {
          "id": 5,
          "nome": "Coca cola 350ml",
          "descricao": "",
          "preco": 5.5,
          "categoria_id": 2
        },
        {
          "id": 6,
          "nome": "Coca cola 600ml",
          "descricao": "",
          "preco": 7.5,
          "categoria_id": 2
        }
      ],
      "categorias": [
        {
          "id": 1,
          "nome": "Hambúrgueres"
        },
        {
          "id": 2,
          "nome": "Refrigerantes"
        }
      ]
    }

Iniciando o servidor

Agora é só rodar o comando abaixo e seu servidor estará iniciado. Lembrando que, por padrão, a API vai funcionar no endereço http://localhost:3000.

`json-server --watch db.json`

`json-server --watch db.json --port 3004`

Rotas

As rotas definem como você vai acessar a API.

As rotas são:

Request URL Detalhes
GET /produtos Busca todos os produtos
GET /produtos/1 Busca um produto
POST /produtos Salva um produto
PUT /produtos/1 Atualiza os dados do produto
PATCH /produtos/1 Atualiza parte dos dados do produto
DELETE /produtos/1 Remove um produto

As rotas serão compostas pelo endereço base (localhost:3000) mais o recurso que você quer acessar, como por exemplo "produtos".

Para executar os requests de exemplo abaixo, você pode usar o Postman ou alguma outra de sua preferência.

Exemplos:

  1. Buscar todos os produtos

    GET http://localhost:3000/protudos/
    Content-Type: application/json
  2. Buscar apenas um produto

    GET http://localhost:3000/produtos/1
    Content-Type: application/json
  3. Salvar um produto

    POST http://localhost:3000/produtos/
    Content-Type: application/json
    
    {
        "nome": "Hambúrguer de frango",
        "descricao": "Pão, bife de hambúrguer 90g de frango, salada e batata.",
        "preco": 9.5,
        "categoria_id": 1
    }
  4. Altera um produto

    PUT http://localhost:3000/produtos/1
    Content-Type: application/json
    
    {
        "nome": "Hambúrguer de frango",
        "descricao": "Pão, bife de hambúrguer 90g de frango, salada e batata.",
        "preco": 10.5,
        "categoria_id": 1
    }
  5. Alterar apenas o nome de um produto

    PATCH http://localhost:3000/produtos/1
    Content-Type: application/json
    
    {
        "nome": "Hambúrguer de frango artezanal"
    }
  6. Excluir um produto

    DELETE http://localhost:3000/produtos/1
    Content-Type: application/json

Filtros

Para executar filtros é bem simples, você só precisa usar o nome das propriedades do objeto que você quer pesquisar.

No exemplo abaixo, estou pesquisando por produtos que o nome é "X-Burguer"

GET http://localhost:3000/produtos?nome=X-Burguer
Content-Type: application/json

Paginação

Para efetuar a paginação, você vai usar o parâmetro _page e, por padrão, cada página terá 10 itens. Se você quiser alterar a quantidade de itens que é retornada por página, basta usar o parâmetro _limit.

No exemplo abaixo, vou buscar a página 1 e quero 2 itens por página.

GET http://localhost:3000/produtos/?_page=1&_limit=2
Content-Type: application/json

Ordenação

Para ordenar os dados, você pode usar os parâmetros _sort para informação qual campo vai sofrer a ordenação e _order para definir se é ascendente ou descendente. Lembrando que é possível ordenar por mais de um campo.

No exemplo abaixo, vou ordenar os produtos por nome e em ordem descendente.

GET http://localhost:3000/produtos/?_sort=nome&_order=desc
Content-Type: application/json

em-json-server's People

Watchers

Leandro Andrade de Oliveira avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.