Skip to main content

Responser

PRs Welcome made-with-python License

Responser is a python package to convert normal strings, objects and other data to REST API response convention and in JSON format.

Usage

Responser


Responser is a python package to convert normal strings, objects and other data to REST API response convention and in JSON format.

This function follows the following JSON structure.

{
  "status_code": 200,
  "data": {
    "name": "Bharath Kumar Ravichandran",
    "alma_mater": "NIT Trichy",
    "languages_known": [
        "Python",
        "PHP",
        "JS",
        "C++"
    ],
    "cool_guy": "yes",
  },
  "message": "OK"
}

JSONResponser

  • Import the function with from responser import JSONResponser
  • Definition JSONResponser(status_code=400, data=None, message=None, strict_mode=false)
  • The status_code can be HTTP status codes or your own custom status codes.
  • If the status_code is a HTTP status code and the data is None, a default reason phrase is added. (If strict_mode is False (default) )
  • If the status_code is a HTTP status code and the message is None, a default reason phrase is added. (Even if strict_mode is True (default) ).
  • If the status_code is not a HTTP status code and the data is None, an empty data is added.
  • If the status_code is not a HTTP status code and the message is None, an empty message is added.
  • If the strict_mode is set to True, the data given as data is encoded.
  • The status_code defaults to 400.

Sample Code

from responser import JSONResponser

status_code = 200
data = {
    "name": "Bharath Kumar Ravichandran",
    "alma_mater": "NIT Trichy",
    "languages_known": [
        "Python",
        "PHP",
        "JS",
        "C++"
    ],
    "cool_guy": "yes",
}
message = "User details returned."

response = JSONResponser(status_code, data, message)
print response

Output

{
  "status_code": 200,
  "data": {
    "name": "Bharath Kumar Ravichandran",
    "alma_mater": "NIT Trichy",
    "languages_known": [
        "Python",
        "PHP",
        "JS",
        "C++"
    ],
    "cool_guy": "yes",
  },
  "message": "User details returned."
}

JSONResponserDecorator

  • Import the decorator with from responser import JSONResponserDecorator
  • Wrap function with decorator @JSONResponserDecorator
  • JSONResponserDecorator is built on top of JSONResponser, so it follows the same convention as JSONResponser.

Sample Code

from responser import JSONResponserDecorator

@JSONResponserDecorator
def sample_function():

    data = {
        "name": "Bharath Kumar Ravichandran",
        "alma_mater": "NIT Trichy",
        "languages_known": [
            "Python",
            "PHP",
            "JS",
            "C++"
        ],
        "cool_guy": "yes",
    }

    return data

Returned Data

{
  "status_code": 200,
  "data": {
    "name": "Bharath Kumar Ravichandran",
    "alma_mater": "NIT Trichy",
    "languages_known": [
        "Python",
        "PHP",
        "JS",
        "C++"
    ],
    "cool_guy": "yes",
  },
  "message": "OK"
}

Inspired from

GokulSrinivas/Sangria

Contributors

Bharath Kumar Ravichandran

License

MIT

Built with love

Release files for responser 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for responser 1.0.0
File Interpreter ABI Platform
responser-1.0.0-py2-none-any.whl Python 2 none any Details

Release files / responser-1.0.0-py2-none-any.whl

Download URL responser-1.0.0-py2-none-any.whl
Size 4.9 kB
Tags Python 2
SHA-256 checksum
How to use checksums
b853f28953b94e9dd2f3833acfa0ac82212dae554d5adf6be670925f63a59722
BLAKE2b-256 checksum
How to use checksums
e3fc3a191c4ff5d5ff416097c1b882b30c5b50503cb4c06fd40e84765b5688ba
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.7

Release history Release notifications | RSS feed

This release

1.0.0 This release

1 release file

0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page