cadwyn icon indicating copy to clipboard operation
cadwyn copied to clipboard

Production-ready community-driven modern Stripe-like API versioning in FastAPI

Results 62 cadwyn issues
Sort by recently updated
recently updated
newest added

This pull request: - adds enrich_swagger() method to the startup event handler. - cleans up unnecessary calls to enrich_swagger() - fixes tests Initially, only three tests failed because lifespan events...

enrich_swagger is called every time an endpoint is added to Cadwyn app. The problem is that enrich_swagger does not just add this endpoint: it rebuilds the entire swagger, likely slowing...

good first issue
Optimization

**Is your feature request related to a problem? Please describe.** Since head schema is not exposed to users directly, it is not obvious that docsting will be copied to all...

enhancement

Currently, Cadwyn uses the following test naming convention: `test__{WHAT_WE_TEST}__{IN_WHAT_CONTEXT}__should_{THE_EXPECTED_RESULT}`. Note that we do not follow this style in test_routing and note that we do not write the expected result if...

tests

**Describe the solution you'd like** The docs mention that you can ["use Cadwyn directly through `cadwyn.generate_versioned_routers`"](https://docs.cadwyn.dev/reference/#routing:~:text=If%20you%20want%20to%20use%20any%20other%20sort%20of%20routing%2C%20you%20can%20use%20Cadwyn%20directly%20through%20cadwyn.generate_versioned_routers.). This is something I'd like to do to emulate Stripe's model and make the...

enhancement

We can take the changelog from #43 and turn it into a JSON response that we can return from `/v1/changelog` endpoint. This will give rise to all sorts of integrations...

enhancement

Currently, our schema().validator().didnt_exist only supports functional style but pydantic 2 also has support for variable style validators: https://docs.pydantic.dev/2.0/usage/validators/#reuse-validators It will be hard and likely unnecessary to support their addition but...

enhancement

I think, it would be best to take all instructions in version changes, put them into some format (like json), then hash the string of that json, and put that...

enhancement
research

This is a huge task that should be split into multiple tasks but the gist is as follows: Cadwyn could catch when our users make a breaking change and it...

enhancement