Skip to content

This Python library provides a standardized way to implement REST clients

Notifications You must be signed in to change notification settings

thecodecrate/python-unifiedrest

Repository files navigation

UnifiedREST

Description

This Python library provides a standardized way to implement REST clients. It aims to offer a common language for developers, simplifying the process of maintaining and scaling web projects, especially those involving RESTful API communication.

Key Features

  • Customizable REST Client: Use any HTTP client library; comes with a default implementation for Python's Requests.
  • Extensible and Modular: Easily add custom drivers, authentication modules, serialization, and parsing.
  • Pydantic Integration: Leverages Pydantic for validation and internal implementation, ensuring type safety and consistency.
  • Developer Friendly: Reduces cognitive load and streamlines onboarding for new developers in projects.

Installation

pip install unifiedrest

Quick Start

To get started with the Python REST Client Library, here's a basic example:

from unifiedrest import *
from pydantic import BaseModel

# define our REST client
class MyRestClient(ClientBase):
    base_url: str = "https://swapi.dev/api/"

client = MyRestClient()

# GET https://swapi.dev/api/people/1
class Person(ModelBase):
    name: str
    height: int
    mass: int
    hair_color: str

await client.run(ClientRequest(
    url="/people/1",
    return_type=Person,
))

# Output:
# RunnerResponseDTO(
#     data=Person(
#         name='Luke Skywalker',
#         height=172,
#         mass=77,
#         hair_color='blond'
#     ),
#     http_code=200,
# )

For more detailed examples, refer to the included Jupyter notebooks (01-rest-basic.ipynb and 02-rest-declarative.ipynb).

Contributing

Contributions are welcome! Please read our Contributing Guide for details on our code of conduct and the process for submitting pull requests.

License

This project is licensed under the MIT License - see the file for details.

About

This Python library provides a standardized way to implement REST clients

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published