Skip to content

Commit

Permalink
Merge pull request #8 from phalt/more-docs
Browse files Browse the repository at this point in the history
compatibility docs updates
  • Loading branch information
phalt authored Oct 2, 2023
2 parents 6ca3a1b + 0ab487e commit 1164888
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 11 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ response = await client.simple_request_simple_request_get()
## Other features

* Written entirely in Python.
* Designed to work with [FastAPI](https://fastapi.tiangolo.com/)'s OpenAPI schema generator.
* The generated client only depends on [httpx](https://www.python-httpx.org/) and [Pydantic 2.4](https://docs.pydantic.dev/latest/).
* HTTP Basic and HTTP Bearer authentication support.
* Support your own configuration - we provide an entry point that will never be overwritten.
Expand Down
25 changes: 14 additions & 11 deletions docs/compatibility.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,24 @@
# 💱 Compatability
# 💱 Compatibility

When we were building Clientele, we discovered that, despite a fantastic [specification](https://www.openapis.org/), OpenAPI has a lot of poor implementations.
## Great compatibility

As pythonistas, we started with the auto-generated OpenAPI schemas provided by [FastAPI](https://fastapi.tiangolo.com/), and then we branched out to large APIs like [Twilio](https://www.twilio.com/docs/openapi) to test what we built.
Any standard `3.0.x` implementation works very well.

Despite the effort, we still keep finding subtly different OpenAPI implementations.
We have tested Clientele with:

Because of this we cannot guarentee 100% compatability with an API, but we can give you a good indication of what we've tested.
* [FastAPI](https://fastapi.tiangolo.com/tutorial/first-steps/?h=openapi#what-is-openapi-for) - our target audience, so 100% compatibility guaranteed.
* [Microsoft's OpenAPI spec](https://learn.microsoft.com/en-us/azure/api-management/import-api-from-oas?tabs=portal) has also been battle tested and works well.

## Works well with
## No compatibility

Any bog-standard `3.0.x` implementation works very well.
We do not support `2.x` aka "Swagger" - this format is quite different and deprecated.

* [FastAPI](https://fastapi.tiangolo.com/tutorial/first-steps/?h=openapi#what-is-openapi-for)'s OpenAPI schema is very well supported.
* [Microsoft's OpenAPI spec](https://learn.microsoft.com/en-us/azure/api-management/import-api-from-oas?tabs=portal) has also been battle tested on an internal project, and works well.
## A note on compatbility

When we were building Clientele, we discovered that, despite a fantastic [specification](https://www.openapis.org/), OpenAPI has a lot of poor implementations.

## Does not work
As pythonistas, we started with the auto-generated OpenAPI schemas provided by [FastAPI](https://fastapi.tiangolo.com/), and then we branched out to large APIs like [Twilio](https://www.twilio.com/docs/openapi) to test what we built.

We do not support `2.x` aka "Swagger" - this format is quite different and deprecated.
Despite the effort, we still keep finding subtly different OpenAPI implementations.

Because of this we cannot guarentee 100% compatibility with an API, but we can give you a good indication of what we've tested.
1 change: 1 addition & 0 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ response = await client.simple_request_simple_request_get()
## Other features

* Written entirely in Python.
* Designed to work with [FastAPI](https://fastapi.tiangolo.com/)'s OpenAPI schema generator.
* The generated client only depends on [httpx](https://www.python-httpx.org/) and [Pydantic 2.4](https://docs.pydantic.dev/latest/).
* HTTP Basic and HTTP Bearer authentication support.
* Support your own configuration - we provide an entry point that will never be overwritten.
Expand Down

0 comments on commit 1164888

Please sign in to comment.