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 fastapi_jsonrpc import Param
from pydantic import BaseModel


app = jsonrpc.API()

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


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

    @jsonrpc.optional
    class DataModel(BaseModel):
        details: str


@api_v1.method(errors=[MyError])
def echo(
    data: str = Param(..., example='123'),
) -> str:
    if data == 'error':
        raise MyError(data={'details': 'error'})
    elif data == 'error-no-data':
        raise MyError()
    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

Changelog

[0.1.10] Validate error responses

[0.1.9] Fix usage example (forgotten import of pydantic)

[0.1.8] Push sources to github

[0.1.7]

[0.1.6] Ability to write DataModel class in BaseError class scope

[0.1.5] Add error usage example to README.rst

[0.1.4] Add description to README.rst

[0.1.3] Fix README.rst

[0.1.2] Add usage example to README.rst

[0.1.1] README.rst

[0.1.0] Initial commit

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.10.tar.gz (8.6 kB view details)

Uploaded Source

Built Distribution

fastapi_jsonrpc-0.1.10-py3-none-any.whl (8.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: fastapi-jsonrpc-0.1.10.tar.gz
  • Upload date:
  • Size: 8.6 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.10.tar.gz
Algorithm Hash digest
SHA256 72da9c518644fb28c85987f88c20a3f53ab2b20d55c6a2e0b3354403aa594a6e
MD5 677b5ea07c652dd2616b24552f959ddb
BLAKE2b-256 da149a4e2893ed9ceb1056d2f68a615de72301c4ed8d2fa30ec70ab17dd7627c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fastapi_jsonrpc-0.1.10-py3-none-any.whl
  • Upload date:
  • Size: 8.2 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.10-py3-none-any.whl
Algorithm Hash digest
SHA256 5718ed328a9c8d4c54b9f943971c0e6f5664c39ad852de8d021007fb95f4c3fa
MD5 beca3c2a6e75375295beec7076942ddd
BLAKE2b-256 88e5eec444f04c7c8e6b9d46bbffccb0f9df293fd70b438215930d53877d843f

See more details on using hashes here.

Supported by

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