Skip to main content

Connect FastAPI microservices easily.

Project description

Install

pip install fastmicroservices

Usage

import time

from toomanythreads import ThreadedServer

from fastmicroservices import Macroservice
from fastmicroservices import Microservice


class Dummy(ThreadedServer, Microservice):
    def __init__(self, macroservice: Macroservice):
        ThreadedServer.__init__(self)
        Microservice.__init__(self, macroservice)

        @self.get("/")
        def foobar():
            return "foobar"


if __name__ == "__main__":
    m = Macroservice()
    serv = Dummy(m)
    m.thread.start()
    time.sleep(100)

How it works

The core routing engine uses /page/{page_name}/{path:path}:

  • Automatic Directory Construction: The backend uses TooManyConfigs and FastJ2 to automatically provision a templates folder and render from it.
  • Service Discovery: Macroservice finds your service by page_name, which is the lowercase class' name. In the above instance, it would be http://localhost:{port}/page/dummy
  • Internal Routing: Your service handles its own routes via the forward() method. You can code your own forwarding method, but ThreadedServer already provides this. See https://pypi.org/project/toomanythreads/

Example: /page/dummy/api/users → finds "dummy" service → calls dummy.forward("/api/users") Static HTML files in templates/static_pages/ work the same way but just render templates.

Licensed under MIT.

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

fastmicroservices-0.1.42.tar.gz (6.9 kB view details)

Uploaded Source

Built Distribution

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

fastmicroservices-0.1.42-py3-none-any.whl (8.3 kB view details)

Uploaded Python 3

File details

Details for the file fastmicroservices-0.1.42.tar.gz.

File metadata

  • Download URL: fastmicroservices-0.1.42.tar.gz
  • Upload date:
  • Size: 6.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.13.2 Windows/11

File hashes

Hashes for fastmicroservices-0.1.42.tar.gz
Algorithm Hash digest
SHA256 9903d025223d0f389fd83f3d6890b9d98018cba3c68c51a24320f3bd400ad48d
MD5 1e708da08a07755c8e4ecc8938cc00ea
BLAKE2b-256 35f8b6456fa04a77ca0d82470c2b884ef0d6e71fe3619138bdb5391d5568395b

See more details on using hashes here.

File details

Details for the file fastmicroservices-0.1.42-py3-none-any.whl.

File metadata

File hashes

Hashes for fastmicroservices-0.1.42-py3-none-any.whl
Algorithm Hash digest
SHA256 4b6837e0583e25a99a0549ee8674c28bd16227ee4403f41f24e792b1cc6a31fa
MD5 95a42e32eff2d0977f8ff40df2daf2d9
BLAKE2b-256 cb3df0ee3084fa36768b13c7d0a4887cd845baebfb5d907d0d146b454e7682dd

See more details on using hashes here.

Supported by

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