The app.py file in this folder showcases how to use the pyramid_openapi3 Pyramid add-on for building robust RESTful APIs. With only a few lines of code you get automatic validation of requests and responses against an OpenAPI v3 schema, along with Swagger "try-it-out" documentation for your API.
* git clone https://github.com/Pylons/pyramid_openapi3.git
* cd pyramid_openapi3/examples/singlefile
* virtualenv -p python3.10 .
* source bin/activate
* pip install pyramid_openapi3
* python app.pyThen use the Swagger interface at http://localhost:6543/docs/ to discover the API. Use the Try it out button to run through a few request/response scenarios.
For example:
- Say Hello by doing a GET request to
http://localhost:6543/hello?name=john. - Get an Exception raised if you omit the required
namequery parameter. - Get an Exception raised if the query parameter
nameis too short.
All of these examples are covered with tests that you can run with $ python -m unittest app.py. The tests need the Python webtest module installed. If your virtualenv is still activated you can install it with pip install webtest.
z
-
A slightly more complex, multi-file example is available in the
examples/todoappfolder. -
A fully built-out app, with 100% test coverage, providing a RealWorld.io API is available at niteoweb/pyramid-realworld-example-app. It is a Heroku-deployable Pyramid app that provides an API for a Medium.com-like social app. You are encouraged to use it as a scaffold for your next project.
-
More information about the library providing the integration between OpenAPI specs and Pyramid, more advanced features and design defence, is available in the main README file.
-
More validators for fields are listed in the OpenAPI Specification document. You can use Regex as well.
-
For an idea of a fully-fledged production OpenApi specification, check out WooCart's OpenAPI docs.