Boas práticas no REST
Sempre utilizar substantivos
-
/getAllCars❌ -
/createNewCar❌ -
/deleteAllRedCars❌
NUNCA alterar o estado de um recurso com GET
-
GET /users/2/activate❌ -
GET /users/2/enable❌
Usar plural
-
/cars✅ -
car❌
Usar sub-recursos para relacionamento entre recursos
GET /books/33/pages
Todo sub-recurso é um recurso em potencial (depende do negócio)
-
GET /states/10/cities(“cities” como sub-recurso de “states”) -
GET /cities?region=north(‘cities’ como recurso isolado do “states”)
Paginação, filtros e ordenação
-
NUNCA retornar todos os registros do banco de dados em uma única resposta
-
GET /regions?page=0&size=1&sort=name,desc-
page=0(número da página) = paginação -
size=1(número de registros por página) = paginação -
sort=name,desc= ordenação
-
-
GET /cities?page=0&size=10&sort=name,asc&state_id=5-
page=0(número da página) = paginação -
size=10(número de registros por página) = paginação -
sort=name,desc= ordenação -
state_id=5= filtro
-
Versionamento da API (não quebrar o contrato da API)
-
Versionamento por Header (+ comum):
curl -X GET /cities -H "accept: application/vnd.brazil.api-v1.0+json" -
Versionamento por Path:
curl -X GET /v1/cities -
Versionamento via parâmetro:
curl -X GET /cities?api_version=1.0.0
Sempre escolher o HTTP Status Code corretamente
- Utilizar o código
201 CREATEDpara criação de um recurso, e não o200 OK
Entender o domínio em questão afim de representar a API da melhor forma
Documentar a API
- Swagger: ferramenta (mais utilização) para implementar a especificação OpenAPI