Skip to main content

A rest client for easier life

Project description

pspring-rest-client

This framework is member of pspring based family of frameworks. It provides a means to create rest clients with minimal code. requests library is used internally for http requests.

Annotations / Decorators that come along with this framework are listed below

  • @RestClient(url="") This decorator will add few boiler plate code that is required to interact with any rest endpoint. The methods significant are send, getUrl, addHeader.

    The send method would accept all arguments that requests.request method would. This method will throw PayloadException for all not HTTP 200 responses. The PayloadException has response and statusCode attributes which can be further used for error handling. The addHeader(name,value) method would add an header The getUrl will get the url that is configured along with @RestClient decorator. The handleError method is exists on the object will be invoked when received a non http 200 response.

  • @Mapping(method="",url="") This decorator will take care of replacing parameters in the url from arguments passed, send the request and return the response

Useful classes in this framework

RegExResponseMapper - this class can be used to tranform one dictionary to another using regex. An example is shown below. The source dictionary fields can be accessed using $ notation. In the below example message is a field inside the `response dictionary.

regexmapper = RegExResponseMapper({
    ".*Customer does not exist.*" :  {
        "statusCode" : "404",
        "code" : "APS-1001",
        "message" : "$response.message"
    },
    ".*" : {
        "statusCode" : "500",
        "code" : "APS-1002",
        "message" : "$response.message"
    }
})

@RestClient(url="https://myapi.com")
class MyRestClient():

  @Mapping(method="GET",url="/user/{firstName}")
  def getCustomer(self,firstName):
    pass

  @Mapping(method="POST",url="/user/",data=json)
  def saveCustomer(self):
    pass

  @Mapping(method="POST",url="/user/")
  def saveCustomer(self,customer):
    self.json=customer

  def handleError(self,response):
        return regexmapper.map(response)

To do:

  • To return objects based on the return type from the response received.

Project details


Download files

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

Files for pspring-rest-client, version 0.0.33
Filename, size File type Python version Upload date Hashes
Filename, size pspring_rest_client-0.0.33-py3-none-any.whl (4.9 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size pspring-rest-client-0.0.33.tar.gz (4.4 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page