Skip to main content

fullapi

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

PyPI Python

Why

Scaffolders help once, then leave. fullapi keeps the spec as the source of truth: gen builds the project, check fails your CI when the API drifts from the spec — a living contract, not a one-shot template.

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.0.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.0-py3-none-any.whl (17.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: fullapi-2.1.0.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.0.tar.gz
Algorithm Hash digest
SHA256 80e30280063274cbf5377e34a9cb3fc9d15c873e92ddf27574ca16bfda7ddc38
MD5 113f6fe72a8eded935f3cdbde11eab2f
BLAKE2b-256 eaa72ea61e10704a81363015e177b303d900c6ea9db2f313efe71d6feebb5785

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fullapi-2.1.0-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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c6d4c63c3b00713a81f6268e1dc1ae7026000ba91cd5ea452c809364997d7611
MD5 00eef1468e5cc160aba01d91e9d7f780
BLAKE2b-256 64898969debae4741aa300785353a92f2aea46086d5c0804762506d7af3ced3a

See more details on using hashes here.

Release history Release notifications | RSS feed

2.1.2

2 files

2.1.1

2 files

This release

2.1.0 This release

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