"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Guia para design de API REST e convenções de nomenclatura

Guia para design de API REST e convenções de nomenclatura

Publicado em 2024-11-06
Navegar:321

Guide to REST API Design and Naming Conventions

Projetar APIs RESTful de maneira eficaz é crucial para criar sistemas escalonáveis, fáceis de manter e fáceis de usar. Embora existam certos padrões, muitos não são regras estritas, mas práticas recomendadas para orientar o design da API. Um padrão de arquitetura amplamente utilizado para APIs é o MVC (Model-View-Controller), mas ele sozinho não aborda os aspectos mais delicados do design da API, como nomenclatura e estrutura. Neste artigo, examinaremos as diretrizes essenciais para estruturar APIs REST.

  1. Convenções de nomenclatura e design orientado a recursos As APIs geralmente são definidas em torno de recursos, que representam entidades em seu sistema, como “usuários”, “produtos” ou “pedidos”. Um recurso pode ser um único item ou uma coleção, e a API deve fornecer uma maneira intuitiva e clara de interagir com esses recursos.

Princípios-chave:
Orientada a recursos: projete suas APIs em torno de recursos, não de ações. Os recursos devem ser considerados substantivos, não verbos. Por exemplo:

/users para acessar a coleção de usuários.
/users/{userId} para acessar um usuário específico.
Consistência: a API deve ser intuitiva. Se um usuário puder buscar uma lista de recursos de /users, ele deverá conseguir buscar recursos individuais adicionando um identificador: /users/{userId}.

Coleção vs. Recurso Único:

Uma coleção de recursos é representada por um substantivo no plural: /usuários, /produtos.
Um único recurso é representado anexando o identificador exclusivo desse recurso: /users/{userId}, /products/{productId}.

  1. Métodos HTTP definem a ação, não o URI A ação que está sendo executada (seja recuperando dados, criando novas entradas ou atualizando dados existentes) não deve ser incorporada no URI. Em vez disso, o método HTTP determina a ação.

Métodos HTTP comuns e seus casos de uso:
GET: Recupera dados do servidor.

Exemplo: GET /products retorna uma lista de todos os produtos.
Exemplo: GET /users/{userId} recupera o usuário com o userId especificado.
POST: Crie um novo recurso no servidor.

Exemplo: POST /users cria um novo usuário.
PUT: Substitua um recurso existente por novos dados (atualização completa).

Exemplo: PUT /users/{userId} substitui totalmente os dados do usuário por novos dados.
PATCH: Atualize parcialmente um recurso existente (atualização parcial).

Exemplo: PATCH /users/{userId} atualiza apenas os atributos especificados, como um número de telefone.
EXCLUIR: exclui um recurso.

Exemplo: DELETE /users/{userId} exclui o usuário com o userId especificado.

  1. Apatridia em REST As APIs REST devem ser sem estado, o que significa que cada chamada de API deve conter todas as informações de que o servidor precisa para processar a solicitação. Isso garante que cada solicitação seja autossuficiente e não dependa de solicitações anteriores.

Exemplo: ao fazer uma solicitação GET para buscar detalhes do usuário, a solicitação deve incluir o token de autorização necessário, mesmo que uma solicitação anterior já tenha autenticado o usuário. Isto é essencial em sistemas distribuídos, onde diferentes solicitações podem atingir diferentes servidores.

  1. Evite armazenamento de dados específicos do servidor Nenhuma solicitação de API deve depender do armazenamento de dados temporários em um servidor específico. Em um sistema distribuído, as solicitações recebidas podem ser roteadas para qualquer servidor, portanto, o mesmo resultado deve ser alcançado independentemente de qual servidor processa a solicitação. É por isso que os estados da sessão não devem ser armazenados em servidores individuais.

Solução: para gerenciamento de sessões, use sistemas de armazenamento centralizados ou distribuídos como Redis ou um mecanismo de autenticação sem estado como JWT (JSON Web Token).

  1. Recursos versus tabelas de banco de dados O design da sua API não deve ter um mapeamento individual entre tabelas de banco de dados e endpoints de API. A API deve expor recursos lógicos e significativos que podem combinar dados de várias tabelas ou fontes.

Exemplo:
GET /orders/{orderId} pode recuperar detalhes do pedido, combinando informações das tabelas ordens, order_items e clientes.

  1. Flexibilidade em tipos de dados As APIs REST não são limitadas pelos tipos de dados ou estruturas de tabela do seu banco de dados. Você pode estruturar suas respostas da maneira que melhor atenda aos consumidores da API. Embora JSON seja o formato mais comumente usado, você pode retornar dados em outros formatos, como XML ou CSV, se necessário.

Exemplo: um endpoint GET /reports/{reportId} pode retornar um relatório em vários formatos (JSON, CSV, PDF) com base nos parâmetros de consulta ou cabeçalhos na solicitação.
Exemplo de estrutura de API
Para unir todos esses princípios, aqui está um exemplo de estrutura de API seguindo estas práticas recomendadas:

GET /products: recupera todos os produtos.
GET /products/{productId}: recupera detalhes de um produto específico.
POST /produtos: Cria um novo produto.
PUT /products/{productId}: Substitui o produto por productId.
PATCH /products/{productId}: atualiza parcialmente o produto.
DELETE /products/{productId}: Exclui o produto.
Nessa estrutura, os recursos são claramente definidos e os métodos HTTP especificam a ação a ser tomada, garantindo uma API limpa e intuitiva.

**Conclusão
**Projetar APIs RESTful envolve mais do que apenas criar rotas e manipular métodos HTTP. Ao focar nos recursos, aproveitar métodos HTTP para ações e aderir à ausência de estado, você cria APIs que são intuitivas, fáceis de manter e escalonáveis. Lembre-se de que as APIs devem ser flexíveis e independentes de estruturas específicas de banco de dados, permitindo maior adaptabilidade à medida que seu sistema cresce.

Seguir essas convenções garante que o design da sua API seja eficiente e fácil de usar, o que melhora a experiência tanto para desenvolvedores quanto para consumidores da sua API.

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/rahul_ranjan_7200/guide-to-rest-api-design-and-naming-conventions-46co?1 Se houver alguma violação, entre em contato com [email protected] para excluir isto
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3