Skip to main content

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

Project description

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

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

responser-1.0.0-py2-none-any.whl (4.9 kB view details)

Uploaded Python 2

File details

Details for the file responser-1.0.0-py2-none-any.whl.

File metadata

  • Download URL: responser-1.0.0-py2-none-any.whl
  • Upload date:
  • Size: 4.9 kB
  • Tags: Python 2
  • Uploaded using 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

File hashes

Hashes for responser-1.0.0-py2-none-any.whl
Algorithm Hash digest
SHA256 b853f28953b94e9dd2f3833acfa0ac82212dae554d5adf6be670925f63a59722
MD5 4883b0c32e311f11a9f6ead178fbd55d
BLAKE2b-256 e3fc3a191c4ff5d5ff416097c1b882b30c5b50503cb4c06fd40e84765b5688ba

See more details on using hashes here.

Supported by

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