Skip to main content

fullapi

Spec-driven FastAPI: generate a project from api.yaml, then enforce it in CI.

PyPI Python Downloads CI License

Why

Scaffolders build once, then leave you on your own. fullapi doesn't. gen builds the project from api.yaml, check keeps it honest: change a field, drop a route, and CI fails instead of your API quietly drifting from the spec.

Quick Start

pip install fullapi

Write api.yaml (or run fullapi init for a starter file):

name: shop_api
database: sqlite        # none | sqlite | postgres
auth: jwt               # optional
resources:
  - name: product
    fields:
      title: str
      price: float
      note: str?        # trailing ? = optional
    auth: true          # protect this resource's routes

Generate and run:

fullapi gen                       # api.yaml -> ./app
pip install -r requirements.txt
uvicorn app.main:app --reload

Enforce in CI:

fullapi check                     # exits non-zero on breaking changes

Commands

Command Description
fullapi init [spec] Write a starter api.yaml
fullapi gen [spec] [-o dir] Generate the project from the spec
fullapi check [spec] [--app app.main:app] Fail on breaking drift from the spec

How check works

It reads the live app's real app.openapi(), derives the expected schema from api.yaml, and diffs them. Removed routes/fields, type changes, and newly required fields are breaking (non-zero exit); added routes and optional fields are safe.

Built and maintained by @sahilnyk.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fullapi-2.1.1.tar.gz (15.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fullapi-2.1.1-py3-none-any.whl (17.2 kB view details)

Uploaded Python 3

File details

Details for the file fullapi-2.1.1.tar.gz.

File metadata

  • Download URL: fullapi-2.1.1.tar.gz
  • Upload date:
  • Size: 15.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.10.12

File hashes

Hashes for fullapi-2.1.1.tar.gz
Algorithm Hash digest
SHA256 8d8df21ede2d69cd7fd27b5149d56443b27d8c9212f9f4271130dc58d12b7b4f
MD5 c48e472a60a914fd2b3e457e48154907
BLAKE2b-256 2369f7804050acac84022114458dfb1a718b7280bbb6505db6e90e146222d8c1

See more details on using hashes here.

File details

Details for the file fullapi-2.1.1-py3-none-any.whl.

File metadata

  • Download URL: fullapi-2.1.1-py3-none-any.whl
  • Upload date:
  • Size: 17.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.10.12

File hashes

Hashes for fullapi-2.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 66623af082cde1bfeff5534fd32a2026e3a2f92827995b39e75961a5c5b190c5
MD5 ac499142a348b499e4f0b4f3b313e242
BLAKE2b-256 1585c7b189e5d59192a66804b22ea9abd9cefc6d2d2ce36fb3e7be95b777e71f

See more details on using hashes here.

Release history Release notifications | RSS feed

2.1.2

2 files

This release

2.1.1 This release

2 files

2.1.0

2 files

1.2.1

2 files

1.1.1

2 files

1.1.0

2 files

1.0.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page