Skip to content

nat5142/rest-wrapper

Repository files navigation

Rest Wrapper

PyPI - Version PyPI - Python Version Tests Codecov Read the Docs PyPI - License

Black pre-commit

Simple, extendable base rest client for python. I've rewritten this pattern time after time, figured I would just package it and install when necessary.

Features

Rest Wrapper provides a simple exposure of the requests module. Just provide a base_url to target and go from there:

from rest_wrapper import RestClient

client = RestClient('https://example.com/')

# make a GET request. just provide an endpoint to append it to your base_url
resp = client.get('users/1/info')

# POST request
resp = client.post('users', json={'name': 'nick', 'username': 'nat5142'})  # kwargs are passed directly to the request itself

# don't append, just request any full URL:
resp = client.get('https://www.google.com/search?q=cats', append_url=False)

Or, use the client to make constructing your own API Wrappers easier:

import os
from rest_wrapper import RestClient


class SomeApiWrapper(RestClient):
    base_url = 'https://some-api.com/'

    def authenticate(self):
        # authenticate method is invoked at the end of the object intialization.
        self.session.headers.update({
            'X-Api-Key': os.environ['API_KEY']
        })


client = SomeApiWrapper()

resp = client.get('/api/v1/users')  # will request https://some-api.com/api/v1/users

Credits

This package was created with Cookiecutter and the fedejaure/cookiecutter-modern-pypackage project template.

About

Simple, extendable base rest client for python

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages