Skip to main content

Web-Library for Python

Project description

WApi: Web-Library for Python

Libraries used:

Installation

You can install the latest version with the command:

pip install whaox-wapi

• Routes

You can create paths as you like, splitting your client into modules

@Route("https://example.com")
class WApi:
    service = Service()

@Route("/wapi")
class Service:

  @Route("/path")
  @GET("/")
  def get(self): pass	

  @POST("/path")
  def post(self): pass
wapi = WApi()
wapi.service.get()
# eq
requests.get("https://example.com/wapi/path/")

• Serialization

The library deserializes the received data according to the type that you specify in the _T parameter of the decorator.

NOTE: The specified type must be json serializable - these are the base types and classes marked with the @dataclass annotation

@dataclass
class Person:
	name: str

@Route("https://example.com")
class WApi:

  @GET("/person", _T=Person)
  def person(self) -> Person: pass

  @GET("/people", _T=List[Person])
  def people(self) -> List[Person]: pass
api = WApi()
person = api.person()

print(person.name)
>>> "John"

• Params

You can flexibly add parameters to the path using {}. The library uses formatting from the standard library.

@Route("https://example.com")
class WApi:

  @GET("/path?name={name}")
  def route(self, name: str): pass

• • Auto-complete

If you want the parameters to be set automatically, you can switch the auto flag to True.

NOTE: if auto=True, you must pass named parameters so that they are added to the path.

@Route("https://example.com")
class WApi:

  @GET("/path", auto=True) # eq /path?name={name}
  def route(self, name: str): pass

• • Unpacking

In order not to pass a lot of parameters, you can pass one by calling it body, it will automatically decompose into parameters, to do this, set the unpack flag to True.

NOTE: Nested non-standard type parameters are not decomposed.

@dataclass
class Person:
  name: str
  age: int  


@Route("https://example.com")
class WApi:

  @GET("/path", auto=True, unpack=True) # eq /path?name={name}&age={age}
  def route(self, body: Person): pass

Project details


Download files

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

Source Distribution

whaox-wapi-1.0.22.tar.gz (3.0 kB view details)

Uploaded Source

File details

Details for the file whaox-wapi-1.0.22.tar.gz.

File metadata

  • Download URL: whaox-wapi-1.0.22.tar.gz
  • Upload date:
  • Size: 3.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.5

File hashes

Hashes for whaox-wapi-1.0.22.tar.gz
Algorithm Hash digest
SHA256 b774dce8203e8e72e793c995080c7abccd867ee73e7869c6e139377416d4b7ca
MD5 916c6afbe20faec3757d3dbcd0545aab
BLAKE2b-256 f75f5fb56425edde0b41a6d8c8f4a7ea68a5d078a7938a8d9e7beb14a78c5558

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