Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

818
Visualizações
No se puede devolver el error 404 como json en lugar de html desde una aplicación Flask-Restful

Estoy trabajando en una prueba simple de Flask REST API y cuando llamo a {{url}}/items, por ejemplo, obtengo la lista de elementos. Sin embargo, si se pasa una llamada a un punto final que no existe, por ejemplo, {{url}}/itemsss, aparece el error 404 en html.

Me gustaría hacer que el manejo de errores sea más amigable y devolver json en lugar de html para ciertos errores como 400, 404,405...

Para el 404, por ejemplo, probé esto:

 @app.errorhandler(404) def not_found(e): response = jsonify({'status': 404,'error': 'not found', 'message': 'invalid resource URI'}) response.status_code = 404 return response

Sin embargo, no funciona.

Mi problema es similar a este: Python Flask: error json y html 404

Quería saber si usar los planos es la única forma de lograr esto.

¿Hay una forma más sencilla de generar el error 404 como json?

Por ejemplo en lugar de esto:

 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <title>404 Not Found</title> <h1>Not Found</h1> <p>The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.</p>

Algo como esto:

 { error: true, status: 404, code: "error.notFound", message: "API endpoint not found", data: { } }

Agradezco su ayuda con esto.

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Por lo general, cuando necesito devolver un mensaje de error personalizado con Flask-RESTful , hago algo como:

 from flask import make_response, jsonify def custom_error(message, status_code): return make_response(jsonify(message), status_code)
over 4 years ago · Santiago Trujillo Relatório

0

Creo que encontré la solución en la documentación oficial :

 from flask import json from werkzeug.exceptions import HTTPException @app.errorhandler(HTTPException) def handle_exception(e): """Return JSON instead of HTML for HTTP errors.""" # start with the correct headers and status code from the error response = e.get_response() # replace the body with JSON response.data = json.dumps({ "code": e.code, "name": e.name, "description": e.description, }) response.content_type = "application/json" return response
over 4 years ago · Santiago Trujillo Relatório

0

El código y la descripción están en HTTP de todos modos, solo necesitan el mensaje. Y usando jsonify del matraz.

 from flask import jsonify from werkzeug.exceptions import HTTPException @app.errorhandler(HTTPException) def handle_exception(e): return jsonify({"message": e.description}), e.code
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda