Improve error messages from error handlers

Open
#787 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
25/100
Issue type
Bug
Clarity
Needs clarification
Activity status
Stale
Tech stack
aws, flask, python
Domain
api, backend

Research direction

Read discussion 757 and trace BaseAPICallValidator._find_path into BasePathFinder.find and APICallPathFinder._get_servers_iter in openapi_core/validation/validators.py and openapi_core/templating/paths/finders.py. Use the ServerNotFound exception in openapi_core/templating/paths/exceptions.py as the starting point; done means the error-handler messages clearly explain the validation failure and its meaning.

Written by the indexing model from the issue text.

Description

area/contrib
Discussed in https://github.com/python-openapi/openapi-core/discussions/757

Originally posted by jtherrmann January 11, 2024
All of the API endpoints for the test deployment of our Flask app, which is deployed via Amazon API Gateway, are currently returning a response like the one below:

{
  "detail": "Server not found for https://vd2gh6uqw3.execute-api.us-west-2.amazonaws.com/api/user",
  "status": 400,
  "title": "Bad Request",
  "type": "about:blank"
}

We depend on the latest pre-release of openapi-core, https://github.com/python-openapi/openapi-core/releases/tag/0.19.0a1.

The error message leads me to believe that openapi-core is raising a ServerNotFound exception from BasePathFinder.find (here), which is called from BaseAPICallValidator._find_path (here).

I have a couple of questions:

  • Is BaseAPICallValidator for validating requests, responses, or both?
  • Why does the validator need to validate the server URL? What exactly does APICallPathFinder._get_servers_iter do? What is the fundamental meaning of a ServerNotFound exception?
Dominant language
Python
Stars
368
Forks
140
PR merge metrics
No merged PRs in 30d

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from python-openapi/openapi-core

All issues in python-openapi/openapi-core

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.