OpenAPI specification validator and converter to Marshmallow schemas.
Project description
Schema-First
Validate and convert OpenAPI specification via Marshmallow schemas to Marshmallow schemas.
Features
- OpenAPI specification validate.
- Convert OpenAPI schemas to Marshmallow schemas.
Installation
Recommended using the latest version of Python. Schema-First supports Python 3.14 and newer.
Install and update using pip:
$ pip install -U schema_first
Example
Create specification - openapi.yaml:
openapi: 3.1.1
info:
title: Example API for testing Flask-First
version: 1.0.1
paths:
/endpoint:
get:
operationId: endpoint
responses:
'200':
content:
application/json:
schema:
properties:
message:
type: string
type: object
description: OK
Create script - main.py:
from pathlib import Path
from pprint import pprint
from schema_first.specification import Specification
spec_file = Path('openapi.yaml')
spec = Specification(spec_file)
spec.load()
pprint(spec.reassembly_spec)
print(
'Marshmallow schema generated from OpenAPI schema',
spec.reassembly_spec['paths']['/endpoint']['get']['responses']['200']['content'][
'application/json'
]['schema'],
)
More example see to ./example folder.
Additional documentation
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file schema_first-0.6.0-py3-none-any.whl.
File metadata
- Download URL: schema_first-0.6.0-py3-none-any.whl
- Upload date:
- Size: 17.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7ed6f40c76cadfbdfa7b3d524ee6eb7c07e26b71bf6c98d5b0fc247f44dfbeba
|
|
| MD5 |
906abdaedd6687d9dd40ed56603093bc
|
|
| BLAKE2b-256 |
d09a816a608cfa9ba0287ae1448ddd0d970b1f2f36f04ccf4a54cf44151038ba
|