Nunes
philippenunes.bsky.social
Nunes
@philippenunes.bsky.social
Programador
Niterói - RJ
Não use lombok para estudos.
January 16, 2025 at 4:08 PM
quem ainda n passou por isso é pq ainda nao tem estrada…
January 8, 2025 at 12:51 AM
Aqui, o servidor informa que o recurso /clientes/1 suporta os métodos GET, PUT, DELETE e OPTIONS.

Frameworks modernos retornam options automaticamente 🫵

Você já viu alguma API completa assim? 😛
December 17, 2024 at 2:16 PM
⚙️ OPTIONS

Indo além dos verbos comuns, O OPTIONS é um método HTTP utilizado para descobrir quais operações são permitidas em um recurso específico.

Exemplo:

Req: OPTIONS /clientes/1

Res: HTTP/1.1 200 OK
Allow: GET, PUT, DELETE, OPTIONS
December 17, 2024 at 2:16 PM
GET /clientes/1:

{
"id": 1,
"nome": "João",
"links": [
{ "rel": "atualizar", "method": "PUT", "href": "/clientes/1" },
{ "rel": "excluir", "method": "DELETE", "href": "/clientes/1" }
]
}

O recurso retorna links informando operações que você pode usar para interagir com o recurso.
December 17, 2024 at 2:16 PM
3⃣ Nível 3 – Hypermídia (HATEOAS)

Nível em que poucas APIs chegam. Introduz o conceito de HATEOAS (Hypermedia as the Engine of Application State). Os recursos incluem links que indicam as operações disponíveis ou os próximos passos possíveis. Tornando-a autoexplicativa.
December 17, 2024 at 2:16 PM
2⃣ Nível 2 – Verbos HTTP

Uso dos verbos HTTP: GET, POST, PUT, DELETE, etc. Simplifica a semântica das operações:

GET /clientes → lista de clientes.
POST /clientes → Novo cliente.
PUT /clientes/1 → Atualiza o cliente com ID 1.
DELETE /clientes/1 → Exclui o cliente com ID 1.
December 17, 2024 at 2:16 PM
1️⃣ Nível 1 – Recursos

Neste nível, cada entidade (recurso) tem sua própria URL (URI): api/clientes, api/usuarios, etc. No entanto, a API ainda trafega tudo via POST.
December 17, 2024 at 2:16 PM
0⃣ Nível 0 – HTTP como transporte

Aqui, a API apenas transporta dados via HTTP. Em uma API hipotética que tem somente uma URL (api/service) e transita todos os dados via HTTP POST, ela estaria no Nível 0.
December 17, 2024 at 2:16 PM