Skip to main content

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

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

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

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.

Release history Release notifications | RSS feed

Supported by

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