Junior
Fale sobre os códigos de status HTTP.
sobes.tech IA
Resposta da IA
Os códigos de estado HTTP são números padrão de três dígitos devolvidos pelo servidor em resposta a uma solicitação do cliente. Eles indicam o resultado do processamento da solicitação.
Categorias de códigos de estado:
- 1xx (Informativos): O servidor recebeu a solicitação e continua o processo.
- 2xx (Sucesso): A solicitação foi processada com sucesso.
- 3xx (Redirecionamento): É necessária uma ação adicional para completar a solicitação.
- 4xx (Erro do cliente): A solicitação contém um erro de sintaxe ou não pode ser processada.
- 5xx (Erro do servidor): O servidor não conseguiu completar a solicitação, mesmo que esta seja válida.
Códigos de estado comuns:
| Código | Nome | Descrição |
|---|---|---|
| 200 | OK | A solicitação foi processada com sucesso. |
| 201 | Created | O recurso foi criado com sucesso. |
| 204 | No Content | A solicitação foi processada com sucesso, sem corpo na resposta. |
| 301 | Moved Permanently | O recurso foi movido para uma URL permanente. |
| 302 | Found | O recurso está disponível temporariamente em outra URL. |
| 304 | Not Modified | O recurso não foi alterado desde a última solicitação. |
| 400 | Bad Request | O servidor não conseguiu entender a solicitação devido a uma sintaxe incorreta. |
| 401 | Unauthorized | É necessária autenticação. |
| 403 | Forbidden | O acesso ao recurso é proibido. |
| 404 | Not Found | O recurso solicitado não foi encontrado. |
| 405 | Method Not Allowed | O método HTTP utilizado na solicitação não é permitido para o recurso. |
| 409 | Conflict | Conflito ao processar a solicitação, por exemplo, criar um recurso existente. |
| 422 | Unprocessable Entity | A solicitação é sintaticamente correta, mas semanticamente incorreta. |
| 500 | Internal Server Error | Erro interno do servidor. |
| 501 | Not Implemented | O servidor não suporta a funcionalidade necessária para processar a solicitação. |
| 503 | Service Unavailable | O servidor está temporariamente indisponível. |
Ao testar uma API, os códigos de estado são um indicador-chave do sucesso ou fracasso do teste. Verificar o código de estado correto para cada tipo de solicitação (GET, POST, PUT, DELETE, etc.) em diferentes cenários (sucesso, erro de validação, ausência de recurso, autorização) é fundamental para os testes funcionais da API.
Por exemplo, ao criar um novo recurso (requisição POST) espera-se o código 201 Created, ao obter um recurso inexistente (requisição GET) - 404 Not Found.
import requests
# Exemplo de verificação do código de estado em uma solicitação bem-sucedida
response = requests.get('https://jsonplaceholder.typicode.com/posts/1')
# Esperamos o código 200 OK
assert response.status_code == 200
# Exemplo de verificação do código de estado em um recurso não encontrado
response_not_found = requests.get('https://jsonplaceholder.typicode.com/posts/9999')
# Esperamos o código 404 Not Found
assert response_not_found.status_code == 404