- Feature/customizable request attributes by @CosmoV in #80
- Fix cascade changes by @CosmoV in #81
- Fix update relationship by @CosmoV in #82
- SQLAlchemy Data Layer refactor by @CosmoV in #83
- Fix custom sql filtering support: bring back backward compatibility by @mahenzon in #74
- Read version from file by @mahenzon in #74
- Fix filter by relationships by @CosmoV in #52
- Add Codecov by @mahenzon in #72
- Set RoutersJSONAPI class on AtomicViewHandler by @mahenzon in #7b2557f
- remove resource manager example since no resource manager exists by @mahenzon in #66
- create separate methods for building query for fetching related objects by @mahenzon in #67
- update ruff linter by @mahenzon in #69
- pass request to data layer by @mahenzon in #61
- fix loading multi relationships by @mahenzon in #59
- Fix type cast in filters by @CosmoV in #62
- Fix null value filtering by @CosmoV in #60
- add py.typed by @mahenzon in #64
- limit view methods by @mahenzon in #63 - (see :ref:`api example doc <api_limited_methods_example>`)
- fix duplicates in list response #48
- fix schema validators passthrough #45
- fix doc build
- create context var for current atomic operation #46
- create example and coverage for universal dependency both for generic views and atomic operations
- tests refactoring
- fixed Atomic Operation dependency resolution #43
- fixed openapi generation for custom id type #40
- Pydantic validators are applied to generated schemas now
- Atomic Operations (see :ref:`example <atomic_operations>`, JSON:API doc)
- Create view now accepts
BaseJSONAPIItemInSchema
as update view does
Note
Backward-incompatible changes
- Automatically create all CRUD views based on schemas (see :ref:`example <minimal_api_example>`)
- Allow to pass Client-Generated IDs (see :ref:`example <client_generated_id>`, JSON:API doc)
- Process relationships on create / update (see :ref:`example <relationships>`, JSON:API doc)
- Accept pydantic model with any dependencies on it (see :ref:`example <view_dependencies>`)
- handle exceptions (return errors, JSON:API doc)
- refactor data layers
- tests coverage
- Create generic view classes #28
- Includes (see :ref:`example with many-to-many <include_many_to_many>`) - any level of includes is now supported (tested with 4);
- View Classes generics (Detail View and List View);
- View Classes now use instance-level methods (breaking change, previously
classmethods
were used); - Pydantic schemas now have to be inherited from custom BaseModel methods (breaking change, previously all schemas were supported). It uses custom registry class, so we can collect and resolve all schemas. Maybe there's some workaround to collect all known schemas;
- Improved interactive docs, request and response examples now have more info, more schemas appear in docs;
- Reworked schemas resolving and building;
- Fixed filtering (schemas resolving fix);
- Create custom sql filters :ref:`example <custom_sql_filtering>`;
- Add linters: black, ruff;
- Add pre-commit;
- Add autotests with pytest;
- Add poetry, configure dependencies groups;
- Add GitHub Action with linting and testing;
- Upgrade examples;
- Update docs.
- Fix setup.py for docs in PYPI - @znbiz