Skip to main content

Module for fastapi help to ensure the Metadata of the API

Project description

FastAPI Tag

FastAPI Tag

Documented & Enhance the Metadata of your API ✨

Continuous Integration Package version

A simple Package could be added to your FastAPI Project to enhance the metadata of your Project and documenting your API with more information.


Source Code: https://github.com/yezz123/fastapi-tag

Install the project: pip install fastapi-tag


Features 🎉

  • Add a tag to your API, which can be used to filter the API documentation.
  • Add a description to your API, which can be used to describe the API.
  • Add a version to your API, which can be used to describe the version of the API and app.
  • Provide some others features like:
    • API_id: A unique identifier for the API.
    • Audience: The audience of the API (e.g. public, internal, external).
  • Tested in python 3.8 and up.
  • Last Version of FastAPI :rocket:

Usage 📚

  • To Identify the Metadata of your API:
from fastapi import FastAPI
from fastapi_tag.model import Contact, Metadata, Version
from fastapi_tag.application import Application

app = FastAPI()

def metadata(app):
    return Metadata(
        title="Hello World",
        version=Version(app="v0.1.1", api="v0.1.0"),
        description="A simple example of a FastAPI application.",
        contact=Contact(
            name="name",
            url="http://test.com",
            email=None
        ),
        api_id="49786b4b-1889-46ec-bd72-27f332436e6f",
        audience="company-internal",
    )

def app(metadata):
    return Application("", metadata)
  • We have also Problem class thats depends on:

    • title: The title of the problem.
    • status: The status code of the problem.
    • detail: A human-readable explanation specific to this occurrence of the problem.
    • instance: A URI reference that identifies the specific occurrence of the problem.
    • type: A URI reference that identifies the problem type.
  • NameSpace is a is a decorator that adds a route generator to the namespace object.

for example:

from fastapi_tag.routers import Namespace

route = Namespace([])

Development

Setup environment

You should create a virtual environment and activate it:

Notes: You need to have python3.9 or higher installed.

I Use uv to manage virtual environments, you can install it with:

# Install uv
pip install uv

# Create a virtual environment
uv venv

# Activate the virtual environment
source .venv/bin/activate

And then install the development dependencies:

# Install dependencies
uv pip install -e .[test,lint]

Run tests 🌝

You can run all the tests with:

bash scripts/tests.sh

Format the code 🍂

Execute the following command to apply pre-commit formatting:

bash scripts/format.sh

License 🍻

This project is licensed under the terms of the MIT license.

Project details


Download files

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

Source Distribution

fastapi_tag-1.0.0.tar.gz (43.8 kB view hashes)

Uploaded Source

Built Distribution

fastapi_tag-1.0.0-py3-none-any.whl (8.6 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page