Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

httprest

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

httprest

A library for making simple REST-like HTTP requests

  • 0.3.0
  • PyPI
  • Socket score

Maintainers
1

httprest

httprest is a minimalistic framework for communicating with REST APIs. Its goal is to reduce a boilerplate code required to communicate with APIs.

  • It has the http package exposing an HTTP client interface. There is also a client implementation that uses urllib under the hood. So no need to use extra libraries like requests
  • It has the api.API class which may be overridden and used to make API calls

Usage

from httprest import API

class MyAPI(API):
    def operation(self):
        result = self._request("POST", "/operation/endpoint", json={...})
        if result.ok:
            print(result.json)

api = MyAPI("http://api.com")
api.operation()

Installation

pip install httprest

HTTP client

The library exposes an HTTPClient interface and provides two implementations for it:

  1. http.urllib_client.UrllibHTTPClient: the default implementation, uses the urllib library under the hood
  2. http.requests_client.RequestsHTTPClient: uses the requests library under the hood

Custom HTTP client

from httprest.http import HTTPClient, HTTPResponse

class MyHTTPClient(HTTPClient):
    def _request(...) -> HTTPResponse

And then you simply use it in the API client:


api = MyAPI(..., http_client=MyHTTPClient())

Fake client

The library provides the http.fake_client module containing FakeHTTPClient class. That class may be used for API testing. Example:

from httprest.http.fake_client import FakeHTTPClient, HTTPResponse

http_client = FakeHTTPClient(responses=[HTTPResponse(200, b"", headers={})])
api = MyAPI(..., http_client=http_client)
api.operation()
# assert your expectations here
assert http_client.history == [...]

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc