Metadata-Version: 2.1
Name: apix
Version: 0.0a3
Author-Email: Arwichok <arwichok@gmail.com>
License: MIT
Requires-Python: >=3.8
Requires-Dist: msgspec>=0.18.4
Requires-Dist: StrEnum>=0.4.15
Requires-Dist: msgspec>=0.18.4; extra == "base"
Provides-Extra: base
Description-Content-Type: text/markdown

# apix

## Example

```python
# models.py
from apix import Schema, Path, PathInfo

class Data(Schema):
    key: str
    value: str

class GetData(Path[Data]):
    __info__ = PathInfo("GET", "/data", Data)
    key: str

# sync.py
from apix.sync import SyncClient

class MySyncClient(SyncClient):
    BASE_URL = "https://my.api"

    def get_data(self, key: str) -> Data:
        return self(GetData(key=key))


# main.py
from apix import Config

with MySyncClient() as client:
    print(client.get_data("Key")) # "Value"

```


## Serializers

- [msgspec](https://jcristharif.com/msgspec/index.html)

## Http Clients

- [httpx](https://www.python-httpx.org/)
