Conveções

Conteúdo

  1. Verbos HTTP
  2. Respostas HTTP
    1. Códigos de Retorno
    2. Padrão de códigos de retorno por verbo HTTP
  3. Formato de Respostas
  4. Nomeando variáveis
    1. Private Fields
    2. Public Fields
    3. Constantes
  5. Nomenclatura de Métodos

Verbos HTTP

O contexto de uma API RESTful é baseado em recursos e ações. Os verbos HTTP (método) são usados para definir as ações que serão realizadas nos recursos.

É importante destacar que os recursos devem estar sempre no plural.

Abaixo estão os verbos HTTP mais comuns e suas ações:

EndpointMétodoAção
/productsGETRetorna a lista de produtos
/productsPOSTInsere um novo produto
/products/{id}GETRetorna o produto do id = {id}
/products/{id}PUTAltera os dados do produto id = {id}
/products/{id}PATCHAltera algumas informações específicias do produto id = {id}
/products/{id}DELETERemove o produto com o id = {id}

Respostas HTTP

Códigos de Retorno

CódigoDescrição
200OK
201Created
204No Content
400Bad Request
404Not Found
500Internal Server Error

Padrão de códigos de retorno por verbo HTTP

MétodoCódigo Retorno SucessoCódigo Retorno Erro
GET200400 ou 404
POST201400
PUT200 ou 204400 ou 404
DELETE200 ou 204404

Formato de Respostas

É importante definir um formato de resposta padrão que será retornado por todos os endpoints da API. O formato mais comum é o JSON.

{
  "success": true,
  "message": "Product found",
  "data": {
    "id": 1,
    "name": "Product 1",
    "price": 100.00
  }
}

Nomeando variáveis

Private Fields

Para variáveis privadas usamos o padrão camelCase.

private string productName;

Public Fields

Para variáveis públicas usamos o padrão PascalCase.

public string ProductName;

Constantes

Para constantes usamos o padrão UPPERCASE.

public const string PRODUCT_NAME = "Product 1";

Nomenclatura de Métodos

Os métodos devem ser nomeados de acordo com a ação que eles realizam. O nome do método deve ser um verbo ou uma frase que descreva a ação que ele executa. Sempre utilizando o padrão PascalCase.

public void CreateProduct()
{
    // Código para criar um produto
}