Orders API

A API de pedidos do Codante.io é uma api que simula uma lista de pedidos em uma plataforma. Traz suporte para uma variedade de parâmetros de consulta, como busca textual por nome, ordenação, e filtragem por status. A API responde com um código de status 200 para solicitações bem-sucedidas, fornecendo um array de recursos de pedido no formato JSON, cada um contendo informações detalhadas, como ID do pedido, nome e email do cliente, data do pedido, valor em centavos, status e datas de criação e atualização.

Além disso, a API inclui tratamento adequado para solicitações inválidas, retornando um código de status 422 quando os parâmetros fornecidos são incorretos ou insuficientes.

Autenticação

A API de pedidos do Codante.io não requer autenticação para acessar os pedidos.

Rate Limit

A API de pedidos do Codante.io possui um limite de taxa de 100 solicitações por minuto. Se você exceder esse limite, receberá um código de status 429. O uso indiscriminado também poderá levar ao bloqueio do seu IP.

Base URL

A URL base para a API de pedidos do Codante.io é https://apis.codante.io/api/orders-api.

O model Order (Pedido)

O model Order traz todas as informações sobre um pedido.

Propriedades

  • Name
    id
    Type
    integer
    Description

    Identificador único do pedido.

  • Name
    customer_name
    Type
    string
    Description

    Nome completo do cliente que realizou o pedido.

  • Name
    customer_email
    Type
    string
    Description

    Email do cliente que realizou o pedido.

  • Name
    order_date
    Type
    timestamp
    Description

    Data do pedido.

  • Name
    amount_in_cents
    Type
    integer
    Description

    Valor do pedido em centavos.

  • Name
    status
    Type
    string
    Description

    Status do pedido. Pode ser completed ou pending.

  • Name
    created_at
    Type
    timestamp
    Description

    Data e hora de criação do pedido.

  • Name
    updated_at
    Type
    timestamp
    Description

    Data e hora da última atualização do pedido.


GET/orders-api/orders

Listagem de pedidos

Este endpoint permite que você recupere uma lista paginada de todos os seus pedidos. Por padrão, um máximo de dez pedidos são mostrados por página.

Atributos opcionais

  • Name
    page
    Type
    integer
    Description

    Número da página a ser recuperada.

  • Name
    status
    Type
    string
    Description

    Filtra os pedidos por status. Pode ser completed ou pending.

  • Name
    sort
    Type
    string
    Description

    Ordena os pedidos por um campo específico. Pode ser customer_name, order_date, amount_in_cents, status, created_at ou updated_at. O padrão é order_date.

    Para ordenação decrescente, adicione um sinal de menos (-) antes do nome do campo.

  • Name
    search
    Type
    string
    Description

    Filtra os pedidos por um termo de busca textual (nome do cliente).

Request

GET
/orders-api/orders
curl -G https://apis.codante.io/api/orders-api/orders \
  -d page=1

Response

{
"data": [
    {
        "id": 178,
        "customer_name": "Michelle Carrara",
        "customer_email": "michelle.carrara@example.com",
        "order_date": "2014-05-05",
        "amount_in_cents": 2739,
        "status": "pending",
        "created_at": "2024-04-29T18:00:02.000000Z",
        "updated_at": "2024-04-29T18:00:02.000000Z"
    },
    // ...
    {
        "id": 87,
        "customer_name": "Stephanie Dias",
        "customer_email": "stephanie.dias@example.net",
        "order_date": "2014-09-07",
        "amount_in_cents": 965,
        "status": "completed",
        "created_at": "2024-04-29T18:00:02.000000Z",
        "updated_at": "2024-04-29T18:00:02.000000Z"
    }
],
"links": {
    "first": "https://apis.codante.io/api/orders-api/orders?page=1",
    "last": "https://apis.codante.io/api/orders-api/orders?page=30",
    "prev": null,
    "next": "https://apis.codante.io/api/orders-api/orders?page=2"
},
"meta": {
    "current_page": 1,
    "from": 1,
    "last_page": 30,
    "links": [
        {
            "url": null,
            "label": "« Previous",
            "active": false
        },
        {
            "url": "https://apis.codante.io/api/orders-api/orders?page=1",
            "label": "1",
            "active": true
        },
        {
            "url": "https://apis.codante.io/api/orders-api/orders?page=2",
            "label": "2",
            "active": false
        },
        {
            "url": "https://apis.codante.io/api/orders-api/orders?page=3",
            "label": "3",
            "active": false
        },
        {
            "url": "https://apis.codante.io/api/orders-api/orders?page=4",
            "label": "4",
            "active": false
        },
        {
            "url": "https://apis.codante.io/api/orders-api/orders?page=5",
            "label": "5",
            "active": false
        },
        {
            "url": "https://apis.codante.io/api/orders-api/orders?page=6",
            "label": "6",
            "active": false
        },
        {
            "url": "https://apis.codante.io/api/orders-api/orders?page=7",
            "label": "7",
            "active": false
        },
        {
            "url": "https://apis.codante.io/api/orders-api/orders?page=8",
            "label": "8",
            "active": false
        },
        {
            "url": "https://apis.codante.io/api/orders-api/orders?page=9",
            "label": "9",
            "active": false
        },
        {
            "url": "https://apis.codante.io/api/orders-api/orders?page=10",
            "label": "10",
            "active": false
        },
        {
            "url": null,
            "label": "...",
            "active": false
        },
        {
            "url": "https://apis.codante.io/api/orders-api/orders?page=29",
            "label": "29",
            "active": false
        },
        {
            "url": "https://apis.codante.io/api/orders-api/orders?page=30",
            "label": "30",
            "active": false
        },
        {
            "url": "https://apis.codante.io/api/orders-api/orders?page=2",
            "label": "Next »",
            "active": false
        }
    ],
    "path": "https://apis.codante.io/api/orders-api/orders",
    "per_page": 10,
    "to": 10,
    "total": 300
}

}


GET/orders-api/orders/{id}

Pedido Individual

Este endpoint permite que você visualize um único pedido.

Request

GET
/orders-api/orders/{id}
curl -G https://apis.codante.io/api/orders-api/orders/1 \

Response

{
  "data": {
    "id": 1,
    "customer_name": "Benjamin Pacheco",
    "customer_email": "benjamin.pacheco@example.net",
    "order_date": "2022-09-24",
    "amount_in_cents": 9916,
    "status": "completed",
    "created_at": "2024-04-29T19:00:02.000000Z",
    "updated_at": "2024-04-29T19:00:02.000000Z"
  }
}

DELETE/orders-api/orders/{id}

Apagar Pedido

Este endpoint permite que você apague uma entrada. Caso o pedido não exista, um código de status 404 será retornado.

Request

DELETE
/orders-api/orders/{id}
curl -X "DELETE" https://apis.codante.io/api/orders-api/orders/1 \

POST/orders-api/orders

Criar Pedido

Este endpoint permite que você crie um novo pedido. O valor do pedido deve ser fornecido em centavos. Caso o pedido seja criado com sucesso, um código de status 201 será retornado. Caso contrário, um código de status 422 será retornado.

Parâmetros

  • Name
    customer_name
    Type
    string
    Description

    Nome completo do cliente que realizou o pedido.

  • Name
    customer_email
    Type
    string
    Description

    Email do cliente que realizou o pedido.

  • Name
    order_date
    Type
    timestamp
    Description

    Data do pedido.

  • Name
    amount_in_cents
    Type
    integer
    Description

    Valor do pedido em centavos.

  • Name
    status
    Type
    string
    Description

    Status do pedido. Pode ser completed ou pending.

Request

POST
/orders-api/orders
curl -X "POST" https://apis.codante.io/api/orders-api/orders \
  -d "customer_name=Benjamin Pacheco" \
  -d "customer_email=benjamin@example.com" \
  -d "order_date=2022-09-24" \
  -d "amount_in_cents=9916" \
  -d "status=completed"