Skip to main content

JSON-RPC server based on fastapi

Project description

Description

JSON-RPC server based on fastapi:

https://fastapi.tiangolo.com

Installation

pip install fastapi-jsonrpc

Usage

pip install uvicorn
import fastapi_jsonrpc as jsonrpc
from pydantic import BaseModel
from fastapi import Body


app = jsonrpc.API()

api_v1 = jsonrpc.Entrypoint('/api/v1/jsonrpc')


class MyError(jsonrpc.BaseError):
    CODE = 5000
    MESSAGE = 'My error'

    class DataModel(BaseModel):
        details: str


@api_v1.method(errors=[MyError])
def echo(
    data: str = Body(..., example='123'),
) -> str:
    if data == 'error':
        raise MyError(data={'details': 'error'})
    else:
        return data


app.bind_entrypoint(api_v1)


if __name__ == '__main__':
    import uvicorn
    uvicorn.run(app, port=5000, debug=True, access_log=False)

Go to:

http://127.0.0.1:5000/docs

Development

  1. Install poetry

    https://github.com/sdispater/poetry#installation

  2. Install dependencies

    poetry update
  3. Install dephell

    pip install dephell
  4. Regenerate setup.py

    dephell deps convert

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

fastapi-jsonrpc-0.1.20.tar.gz (9.1 kB view details)

Uploaded Source

Built Distribution

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

fastapi_jsonrpc-0.1.20-py3-none-any.whl (8.8 kB view details)

Uploaded Python 3

File details

Details for the file fastapi-jsonrpc-0.1.20.tar.gz.

File metadata

  • Download URL: fastapi-jsonrpc-0.1.20.tar.gz
  • Upload date:
  • Size: 9.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/0.12.17 CPython/3.7.3 Darwin/18.7.0

File hashes

Hashes for fastapi-jsonrpc-0.1.20.tar.gz
Algorithm Hash digest
SHA256 75f6ee1750be8a7cdc9fc94a4ed07c8944283b91503764008641e12be247ab1b
MD5 6d748e197bb5a5ec6769120798b98b5e
BLAKE2b-256 11e6f64911f6c93f0863b093a4a60e0c25d1925ef645a52969ae2e3cb939aa0c

See more details on using hashes here.

File details

Details for the file fastapi_jsonrpc-0.1.20-py3-none-any.whl.

File metadata

  • Download URL: fastapi_jsonrpc-0.1.20-py3-none-any.whl
  • Upload date:
  • Size: 8.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/0.12.17 CPython/3.7.3 Darwin/18.7.0

File hashes

Hashes for fastapi_jsonrpc-0.1.20-py3-none-any.whl
Algorithm Hash digest
SHA256 84ebf10a8bcb7a7bc7951df8bdf6be5b705a713046c37ba0889b1ff79bd7b007
MD5 817b0bc49f05d8120cfeedec7d81e8e6
BLAKE2b-256 cc4066a2b5c1135370d3fe61ac1c5c95b7be6a4750f675af8d6c09cd498bed86

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