From 02ac4437779a2ec9cbe9f74434771116189cfbab Mon Sep 17 00:00:00 2001 From: luolingchun Date: Sun, 16 Jun 2024 11:57:09 +0800 Subject: [PATCH] Update README.md --- README.md | 35 ++++++++++++++++++----------------- docs/images/openapi-all.png | Bin 0 -> 46591 bytes 2 files changed, 18 insertions(+), 17 deletions(-) create mode 100644 docs/images/openapi-all.png diff --git a/README.md b/README.md index b61bf40f..57ae4ecf 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ > This branch is in development preview state. **Flask OpenAPI3** is a web API framework based on **Flask**. It uses **Pydantic** to verify data and automatic -generation of interaction documentation: **Swagger**, **ReDoc**, **RapiDoc**, etc. +generation of interaction documentation. The key features are: @@ -33,11 +33,9 @@ The key features are: - **Standard document specification:** Based on [OpenAPI Specification](https://spec.openapis.org/oas/v3.1.0) -- **Interactive OpenAPI documentation:** [Swagger](https://github.com/swagger-api/swagger-ui), [Redoc](https://github.com/Redocly/redoc), [RapiDoc](https://github.com/rapi-doc/RapiDoc), etc. - -- **Data validation:** Fast data verification based on [Pydantic](https://github.com/pydantic/pydantic) +- **Interactive OpenAPI documentation:** [Swagger](https://github.com/swagger-api/swagger-ui), [Redoc](https://github.com/Redocly/redoc), [RapiDoc](https://github.com/rapi-doc/RapiDoc), [RapiPdf](https://mrin9.github.io/RapiPdf/), [Scalar](https://github.com/scalar/scalar), [Elements](https://github.com/stoplightio/elements) -- **Authorization:** Support to reload authorizations in Swagger UI +- **Data validation:** Fast data verification based on [Pydantic](https://github.com/pydantic/pydantic) ## Requirements @@ -64,9 +62,12 @@ conda install -c conda-forge flask-openapi3[swagger] Optional dependencies - [python-email-validator](https://github.com/JoshData/python-email-validator) supports email verification. -- [python-dotenv](https://github.com/theskumar/python-dotenv#readme) enables support for [Environment Variables From dotenv](https://flask.palletsprojects.com/en/latest/cli/#dotenv) when running `flask` commands. +- [python-dotenv](https://github.com/theskumar/python-dotenv#readme) enables support + for [Environment Variables From dotenv](https://flask.palletsprojects.com/en/latest/cli/#dotenv) when running `flask` + commands. - [pyyaml](https://github.com/yaml/pyyaml) is used to output the OpenAPI document in yaml format. - [asgiref](https://github.com/django/asgiref) allows views to be defined with `async def` and use `await`. +- [flask-openapi3-plugins](https://github.com/luolingchun/flask-openapi3-plugins) Provide OpenAPI UI for flask-openapi3. To install these dependencies with flask-openapi3: @@ -82,7 +83,10 @@ pip install flask-openapi3[email] pip install flask-openapi3[yaml,async,dotenv,email] # or manually pip install pyyaml asgiref python-dotenv email-validator +# OpenAPI UI plugins +pip install -U flask-openapi3[swagger,redoc,rapidoc,rapipdf,scalar,elements] ``` + ## A Simple Example @@ -193,21 +197,18 @@ app.register_api_view(api_view) if __name__ == "__main__": app.run(debug=True) ``` + ## API Document Run the [simple example](https://github.com/luolingchun/flask-openapi3/blob/master/examples/simple_demo.py), and go to http://127.0.0.1:5000/openapi. -You will see the documentation: [Swagger](https://github.com/swagger-api/swagger-ui), [Redoc](https://github.com/Redocly/redoc) and [RapiDoc](https://github.com/rapi-doc/RapiDoc). - -> Swagger, Redoc, RapiDoc are optional dependencies that require manual installation. +> OpenAPI UI plugins are optional dependencies that require manual installation. +> +> `pip install -U flask-openapi3[swagger,redoc,rapidoc,rapipdf,scalar,elements]` > -> `pip install -U flask-openapi3[swagger,redoc,rapidoc]` -> -> More optional ui templates goto the document about [UI_Templates](https://luolingchun.github.io/flask-openapi3/latest/Usage/UI_Templates/). - -![openapi](https://raw.githubusercontent.com/luolingchun/flask-openapi3/master/docs/images/openapi.png) -![openapi-swagger](https://raw.githubusercontent.com/luolingchun/flask-openapi3/master/docs/images/openapi-swagger.png) -![openapi-redoc](https://raw.githubusercontent.com/luolingchun/flask-openapi3/master/docs/images/openapi-redoc.png) -![openapi-RapiDoc](https://raw.githubusercontent.com/luolingchun/flask-openapi3/master/docs/images/openapi-rapidoc.png) +> More optional ui templates goto the document +> about [UI_Templates](https://luolingchun.github.io/flask-openapi3/latest/Usage/UI_Templates/). + +![openapi](https://raw.githubusercontent.com/luolingchun/flask-openapi3/master/docs/images/openapi-all.png) diff --git a/docs/images/openapi-all.png b/docs/images/openapi-all.png new file mode 100644 index 0000000000000000000000000000000000000000..86633d863d2b63fbc0a0ff0b00d0f9e6d764fa6e GIT binary patch literal 46591 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 Ixz~+<19Hw;z5oCK literal 0 HcmV?d00001