REST API
-
Protocolos de API
- Simple Object Access Protocol (SOAP)
- Representational State Transfer (REST)
- GraphQL
- Google Remote Procedure Call (gRPC)
- WebSockets
- Outros
-
Exemplos de Web API
-
Web API Pública
Arquitetura REST

HTTP Clients
-
GUI
- Postman - Plataforma colaborativa com interface intuitiva
- Insomnia - Cliente REST leve e responsivo
- Bruno - Cliente totalmente local e nativo do Git
- Hoppscotch - Cliente web open-source
- Paw - Cliente macOS profissional
-
CLI
-
IDE
- VS Code REST Client - Extensão nativa
- Thunder Client - Integrado ao VS Code
- Jetbrains HTTP Client - Integrado em IDEs Jetbrains
- REST Client para Vim - Plugin Neovim/Vim
-
Bibliotecas
HTTP Status Code
Os códigos de status HTTP são códigos numéricos retornados pelo servidor para indicar o resultado de uma solicitação HTTP. Eles são divididos em cinco categorias principais:
- Respostas de informação (100-199)
- Respostas de sucesso (200-299)
- Redirecionamentos (300-399)
- Erros do cliente (400-499)
- Erros do servidor (500-599)
| Código | Nome | Significado |
|---|---|---|
200 | Ok | Solicitação gerada com sucesso |
201 | Created | Solicitação gerada com sucesso e novo recurso foi criado |
204 | No Content | Solicitação gerada com sucesso e sem conteúdo para enviar |
400 | Bad Request | Solicitação não compreendida por motivos de erro |
401 | Unauthorized | Solicitação bloqueada sem credenciais de autenticação válidas |
404 | Not Found | O servidor não pode encontrar o recurso solicitado |
500 | Internal Server Error | O servidor encontrou uma situação com a qual não sabe lidar |
ViaCEP | REST API
- ViaCEP - Doc
- Exemplos:
Rotas
| Método | Caminho | Status | Resposta |
|---|---|---|---|
| GET | /ws/{cep}/json/ | 200 | Retorna os dados do CEP em JSON |
| GET | /ws/{cep}/xml/ | 200 | Retorna os dados do CEP em XML |
Consultar CEP

@cep=58015430
GET https://viacep.com.br/ws/{{cep}}/json/
@cep=58015430
GET https://viacep.com.br/ws/{{cep}}/json/
Github | REST API
- GitHub - REST API - Doc
- Exemplos
- Token
Rotas
Código Fonte (Requisição | Rest Client)
| Método | Caminho | Status | Resposta |
|---|---|---|---|
| POST | /user/repos | 201 | Cria um novo repositório |
| GET | /users/luizchaves/repos | 200 | Retorna todos os repositórios |
| GET | /users/luizchaves/repos?type=private | 200 | Retorna repositórios privados |
| GET | /repos/luizchaves/pw2 | 200 | Retorna o repositório luizchaves/pw2 |
| PATCH | /repos/luizchaves/pw2 | 200 | Atualiza o repositório luizchaves/pw2 |
| DELETE | /repos/luizchaves/pw2 | 204 | Exclui o repositório luizchaves/pw2 |
Create a repository

GitHub - REST API - Create a repository for the authenticated user
/codes/api/rest/.env.example
GITHUB_TOKEN=
/codes/api/rest/.env.example
GITHUB_TOKEN=
@host=https://api.github.com
@token={{$dotenv GITHUB_TOKEN}}
@username=luizchaves
@repo=github-repo-api
###
POST {{host}}/user/repos
Accept: application/vnd.github+json
Authorization: Bearer {{token}}
X-GitHub-Api-Version: 2022-11-28
Content-Type: application/json
{
"name": "{{repo}}",
"description": "This is your first repo!",
"homepage": "https://github.com",
"private": false,
"is_template": true
}
@host=https://api.github.com
@token={{$dotenv GITHUB_TOKEN}}
@username=luizchaves
@repo=github-repo-api
###
POST {{host}}/user/repos
Accept: application/vnd.github+json
Authorization: Bearer {{token}}
X-GitHub-Api-Version: 2022-11-28
Content-Type: application/json
{
"name": "{{repo}}",
"description": "This is your first repo!",
"homepage": "https://github.com",
"private": false,
"is_template": true
}
Read repositories

GitHub - REST API - List repositories for a user
@host=https://api.github.com
@token={{$dotenv GITHUB_TOKEN}}
@username=luizchaves
###
GET {{host}}/users/{{username}}/repos
Accept: application/vnd.github+json
Authorization: Bearer {{token}}
X-GitHub-Api-Version: 2022-11-28
@host=https://api.github.com
@token={{$dotenv GITHUB_TOKEN}}
@username=luizchaves
###
GET {{host}}/users/{{username}}/repos
Accept: application/vnd.github+json
Authorization: Bearer {{token}}
X-GitHub-Api-Version: 2022-11-28
Essa rota pode ser solicitada sem Token:
@host=https://api.github.com
@username=luizchaves
###
GET {{host}}/users/{{username}}/repos
@host=https://api.github.com
@username=luizchaves
###
GET {{host}}/users/{{username}}/repos
Read a repository (name)

GitHub - REST API - Get a repository
@host=https://api.github.com
@token={{$dotenv GITHUB_TOKEN}}
@username=luizchaves
@repo=github-repo-api
###
GET {{host}}/repos/{{username}}/{{repo}}
Accept: application/vnd.github+json
Authorization: Bearer {{token}}
X-GitHub-Api-Version: 2022-11-28
@host=https://api.github.com
@token={{$dotenv GITHUB_TOKEN}}
@username=luizchaves
@repo=github-repo-api
###
GET {{host}}/repos/{{username}}/{{repo}}
Accept: application/vnd.github+json
Authorization: Bearer {{token}}
X-GitHub-Api-Version: 2022-11-28
Update a repository

GitHub - REST API - Update a repository
@host=https://api.github.com
@token={{$dotenv GITHUB_TOKEN}}
@username=luizchaves
@repo=github-repo-api
###
PATCH {{host}}/repos/{{username}}/{{repo}}
Accept: application/vnd.github+json
Authorization: Bearer {{token}}
X-GitHub-Api-Version: 2022-11-28
Content-Type: application/json
{
"name": "{{repo}}",
"description": "This is your first repository",
"homepage": "https://github.com",
"private": false,
"is_template": false
}
@host=https://api.github.com
@token={{$dotenv GITHUB_TOKEN}}
@username=luizchaves
@repo=github-repo-api
###
PATCH {{host}}/repos/{{username}}/{{repo}}
Accept: application/vnd.github+json
Authorization: Bearer {{token}}
X-GitHub-Api-Version: 2022-11-28
Content-Type: application/json
{
"name": "{{repo}}",
"description": "This is your first repository",
"homepage": "https://github.com",
"private": false,
"is_template": false
}
Delete a repository

GitHub - REST API - Delete a repository
@host=https://api.github.com
@token={{$dotenv GITHUB_TOKEN}}
@username=luizchaves
@repo=github-repo-api
###
DELETE {{host}}/repos/{{username}}/{{repo}}
Accept: application/vnd.github+json
Authorization: Bearer {{token}}
X-GitHub-Api-Version: 2022-11-28
@host=https://api.github.com
@token={{$dotenv GITHUB_TOKEN}}
@username=luizchaves
@repo=github-repo-api
###
DELETE {{host}}/repos/{{username}}/{{repo}}
Accept: application/vnd.github+json
Authorization: Bearer {{token}}
X-GitHub-Api-Version: 2022-11-28