Skip to content

carloseduardoalvesviana/microservice-orders-php

Repository files navigation

Orders API - Microserviço de Pedidos

Esta API permite a criação de pedidos contendo um cliente e uma lista de produtos, calculando automaticamente o valor total do pedido e retornando o resultado em formato JSON.

Requisitos

  • PHP 8.1 ou superior
  • Servidor embutido do PHP
  • Docker (opcional para execução conteinerizada)

Instalação e Execução (Sem Docker)

  1. Clone este repositório:
    git clone https://github.com/carloseduardoalvesviana/microservice-orders-php.git
    cd orders-api
  2. Inicie o servidor PHP embutido:
    php -S localhost:8000

A API estará acessível em http://localhost:8000.


Instalação e Execução com Docker

  1. Clone este repositório:
    git clone https://github.com/carloseduardoalvesviana/microservice-orders-php.git
    cd orders-api
  2. Inicie os containers com Docker Compose:
    docker compose up -d

A API estará acessível em http://localhost:8000.


Uso da API

Criar Pedido

  • URL: http://localhost:8000/order
  • Método: POST
  • Cabeçalho: Content-Type: application/json
  • Corpo da requisição:
{
  "client": {
    "name": "João da Silva"
  },
  "products": [
    {
      "name": "Suco",
      "price": 9
    },
    {
      "name": "Batata Frita",
      "price": 9
    },
    {
      "name": "Água Mineral",
      "price": 10
    }
  ]
}

Resposta Esperada

  • Código HTTP: 200 OK
  • Exemplo de resposta:
{
  "order": {
    "client": {
      "id": "c03d5703-19b8-47ad-b0d1-71c4f2ab3af4",
      "name": "João da Silva"
    },
    "products": [
      {
        "name": "Suco",
        "price": 9
      },
      {
        "name": "Batata Frita",
        "price": 9
      },
      {
        "name": "Água Mineral",
        "price": 10
      }
    ],
    "total_price": 28
  }
}

Como Funciona?

  1. A API recebe os dados da requisição via JSON.
  2. Valida se os campos obrigatórios (cliente e produtos) estão presentes.
  3. Calcula o total do pedido somando os preços dos produtos.
  4. Retorna os detalhes do pedido gerado.

Testando a API

Você pode testar a API utilizando:

  • cURL:

    curl -X POST "http://localhost:8000/order" \
         -H "Content-Type: application/json" \
         -d '{
               "client": { "name": "João da Silva" },
               "products": [
                 { "name": "Suco", "price": 9 },
                 { "name": "Batata Frita", "price": 9 },
                 { "name": "Água Mineral", "price": 10 }
               ]
             }'
  • Postman ou Insomnia:

    • Crie uma nova requisição POST para http://localhost:8000/order.
    • Configure o cabeçalho Content-Type: application/json.
    • Cole o corpo JSON de exemplo e envie a requisição.

Considerações Finais

Esta API é um exemplo de um microserviço simples para processamento de pedidos, adequado para integração com sistemas de e-commerce, delivery ou ERP. Caso queira utilizar esse exemplo para algum trabalho, recomendo a implementação de autenticação, comunicação com banco de dados e logs para monitoramento. A API já possui um rate limit de 100 requisições a cada 1 minuto.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published