A simple async API framework based on Starlette.
Star OpenAPI is a web API framework based on Starlette. It uses Pydantic to verify data and automatic generation of interaction documentation.
The key features are:
-
Easy to code: Easy to use and easy to learn
-
Standard document specification: Based on OpenAPI Specification
-
Interactive OpenAPI documentation: Swagger, Redoc, RapiDoc, RapiPdf, Scalar, Elements
-
Data validation: Fast data verification based on Pydantic
-
Websocket: Support for websocket
Requirements
Python 3.11+
star-openapi is dependent on the following libraries:
Installation
pip install -U star-openapi[swagger]
Optional dependencies
httpx- Required if you want to use theTestClient.python-multipart- Required if you want to support form parsing, withrequest.form().itsdangerous- Required forSessionMiddlewaresupport.pyyaml- Required forSchemaGeneratorsupport.
You can install all of these with pip install star-openapi[full].
- star-openapi-plugins Provide OpenAPI UI for star-openapi.
You can install all of these with pip install star-openapi[swagger,redoc,rapidoc,rapipdf,scalar,elements].
A Simple Example
Here's a simple example, further go to the Example.
import uvicorn
from pydantic import BaseModel
from starlette.responses import JSONResponse
from star_openapi import OpenAPI
info = {"title": "Star API", "version": "1.0.0"}
app = OpenAPI(info=info)
book_tag = {"name": "book", "description": "book tag"}
class BookModel(BaseModel):
name: str
age: int
@app.post("/book", summary="get books", tags=[book_tag])
async def create_user(body: BookModel):
"""
get all books
"""
print(body.model_dump_json())
return JSONResponse({"message": "Hello World"})
if __name__ == "__main__":
print(app.routes)
uvicorn.run(app)
API Document
Run the simple example, and go to http://127.0.0.1:8000/openapi.
OpenAPI UI plugins are optional dependencies that require manual installation.
pip install -U star-openapi[swagger,redoc,rapidoc,rapipdf,scalar,elements]More optional ui templates goto the document about UI_Templates.
Metadata
Release files for star-openapi 0.9.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| star_openapi-0.9.7.tar.gz | 564.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| star_openapi-0.9.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 606.2 kB
Release files / star_openapi-0.9.7.tar.gz
| Download URL | star_openapi-0.9.7.tar.gz |
|---|---|
| Size | 564.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
605c4c162dbac23415d1067c813897a441357d5718e82e2d3d1be57b2874d616
|
|
BLAKE2b-256 checksum How to use checksums |
db8645a2e15ef0d4ae3213ebddae9a9ee48733ca0c8b3988469774b68d9fbae8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / star_openapi-0.9.7-py3-none-any.whl
| Download URL | star_openapi-0.9.7-py3-none-any.whl |
|---|---|
| Size | 42.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
74a31332d9ed2dd216a8eb94a78c2284e895df84a989406f63064d0a0c99111c
|
|
BLAKE2b-256 checksum How to use checksums |
44f56f4c150a7fe47e0501f35ca8f6fd0b58b689accd077efdb0a59732c4cb2d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|