Project activity #30875
closedProject activity #30766: Documenten API Spec updaten naar 1.5
Update Documenten API naar versie 1.5 van de DRC spec
100%
Description
De huidige DRC implementatie is van versie 1.1/1.2. Deze loopt al enige tijd achter op de nieuwe specificatie, namelijk 1.5.
Er vanuit gaand dat #30874 eerst is afgerond, zal de versie van de specificatie 1.3.0 zijn
https://github.com/VNG-Realisatie/documenten-api/blob/develop/CHANGELOG.rst
Met name 1.4.x is een major wijziging dus daar zal veel tijd inzitten.Belangrijk is om van laag naar hoog te werken:
- 1.4.0 major update
- API gewijzigd, dus nieuwe tests schrijven en dan implementeren, met name stukje expand wat totaal nieuw is
- 1.4.1 minor update
- Geen API wijzigingen kijken of de tests nog voldoen voor GET bestandsdelen
- 1.4.2 minor update
- functionaliteit gewijzigd, test herzien
- 1.4.3 minor update
- functionaliteit gewijzigd, test herzien POST bestandsdelen
- 1.5.0 minor update
- API gewijzigd, dus nieuwe tests schrijven en dan implementeren
1.5.0 (2024-25-03) =========== - **Added:** Fields on EIO (inhoudIsVervallen). =========== 1.4.3 (2023-10-24) =========== - **Changed:** `lock` attribute shows up in EIO.bestandsdelen POST response after creating an EIO. =========== 1.4.2 (2023-09-25) =========== - **Changed:** added expand queryparameter to /zoek - **Changed:** bestandsdeel serializer to include lock attribute =========== 1.4.1 (2023-08-29) =========== - **Changed:** schema generation such that the `lock` attribute shows up in EIO.bestandsdelen GET response. Implementation changes ---------------------- 1.4.0 (2023-08-22) =========== Implementation changes ---------------------- `Issue 2247`_: - **Added:** Implementation of 'trefwoorden' to the 'EnkelvoudigInformatieobject' model for improved metadata organization. - **Added:** Integration of 'trefwoorden' filter to facilitate precise content filtering. - **Changed:** Adjusted test suite to accommodate the new 'trefwoorden' attribute. - **Added:** Introduction of 'expand' feature to the 'documenten' API, enabling more comprehensive data retrieval. - **Changed:** Replaced hard-coded search logic for models and serializers. - **Changed:** Renamed '_inclusions' to '_expand' for better clarity and consistency. - **Changed:** Updated the 'expand' model to resolve previous errors and improve performance. - **Fixed:** Corrected the URL for signals to ensure proper functionality. - **Updated:** Expanded OpenAPI Specification (OAS) to include the 'expand' feature. - **Added:** Custom renderer to enable camel case formatting for improved API response consistency. - **Fixed:** Adjusted renderers to handle nested dictionaries and replace 'Expand' with '_expand'. - **Updated:** 'zrc expansions.py' for alignment with the latest enhancements. - **Fixed:** Handled scenarios involving empty values more gracefully. - **Fixed:** Corrected an issue where a URL within a nested dictionary caused a server error. - **Fixed:** signals url and removed notifications mixin #210 - **Updated:** 'exclusions.py' to handle non-type objects more effectively during iteration. - **Updated:** Modified 'expfield' to 'sub_field' for clarity and precision in naming. `Issue 2241`_: - **Updated:** eio validation such that status==definitief does not block update/patch `Issue 2304`_: - **Updated:** help text for deprecated resources (verzenddatum and ontvangstdatum in openapi.yaml .. _Issue 2247: https://github.com/VNG-Realisatie/gemma-zaken/issues/2247 .. _Issue 2241: https://github.com/VNG-Realisatie/gemma-zaken/issues/2241 .. _Issue 2304: https://github.com/VNG-Realisatie/gemma-zaken/issues/2304
- API gewijzigd, dus nieuwe tests schrijven en dan implementeren
Updated by Erik Hoogland 2 months ago
- Status changed from Backlog to In Progress
- Assignee set to Erik Hoogland
Updated by Erik Hoogland 2 months ago
Property "trefwoorden" toegevoegd aan EnkelvoudigInformatieObject en testen geschreven/bijgewerkt.
Testen gaan goed tegen Alfresco en de DRC referentie implementatie.
Initiële vergelijking van YAML 1.3.0 en 1.4.0 gedaan.
Updated by Erik Hoogland 2 months ago
- trefwoorden parameter aan GET (Zoek)
- property inhoudIsVervallen toegevoegd aan EIO
- Waardes concept & vastgesteld toegevoegd aan contraint 'rgbz:statusConstraint'
- Update YAML naar 1.5.0
Dit is nu de status van de changes. Alles wat is doorgestreept zijn interne changes van de refentie implementatie, en geen werk voor ons.
Overige punten heb ik een uitleg bijgezet.
1.5.0 (2024-25-03) ===========
- Added: Fields on EIO (inhoudIsVervallen).
- Code is aangepast en er is een test
===========
1.4.3 (2023-10-24) ===========
- Code is aangepast en er is een test
- Changed: `lock` attribute shows up in EIO.bestandsdelen POST response after creating an EIO.
- EIO.bestandsdelen.lock was al onderdeel van de initiële implementatie van bestandsdelen, zit in tests
===========
1.4.2 (2023-09-25) ===========
- EIO.bestandsdelen.lock was al onderdeel van de initiële implementatie van bestandsdelen, zit in tests
- Changed: added expand queryparameter to /zoek
- Changed: bestandsdeel serializer to include lock attribute
- EIO.bestandsdelen.lock was al onderdeel van de initiële implementatie van bestandsdelen, zit in tests
===========
1.4.1 (2023-08-29)
- EIO.bestandsdelen.lock was al onderdeel van de initiële implementatie van bestandsdelen, zit in tests
- Changed: schema generation such that the `lock` attribute shows up in EIO.bestandsdelen GET response.
- EIO.bestandsdelen.lock was al onderdeel van de initiële implementatie van bestandsdelen, zit in tests
Implementation changes
----------------------
1.4.0 (2023-08-22)
===========
Implementation changes
----------------------
- Added: Implementation of 'trefwoorden' to the 'EnkelvoudigInformatieobject' model for improved metadata organization.
- Code is aangepast en er is een test
- Added: Integration of 'trefwoorden' filter to facilitate precise content filtering.
- Code is aangepast en er is een test
- Changed: Adjusted test suite to accommodate the new 'trefwoorden' attribute.
- Tests zijn aangepast
- Added: Introduction of 'expand' feature to the 'documenten' API, enabling more comprehensive data retrieval.
* Changed: Replaced hard-coded search logic for models and serializers.* Changed: Renamed '_inclusions' to '_expand' for better clarity and consistency. - Changed: Updated the 'expand' model to resolve previous errors and improve performance.-
* Fixed: Corrected the URL for signals to ensure proper functionality. - Updated: Expanded OpenAPI Specification (OAS) to include the 'expand' feature.
* Added: Custom renderer to enable camel case formatting for improved API response consistency.* Fixed: Adjusted renderers to handle nested dictionaries and replace 'Expand' with '_expand'.* Updated: 'zrc expansions.py' for alignment with the latest enhancements.* Fixed: Handled scenarios involving empty values more gracefully.* Fixed: Corrected an issue where a URL within a nested dictionary caused a server error.* Fixed: signals url and removed notifications mixin #210* Updated: 'exclusions.py' to handle non-type objects more effectively during iteration.* Updated: Modified 'expfield' to 'sub_field' for clarity and precision in naming.
- Updated: eio validation such that status==definitief does not block update/patch
- Dit zat mogelijk nooit in onze implementatie, moet een test voor komen.
- Updated: help text for deprecated resources (verzenddatum and ontvangstdatum in openapi.yaml
- Zit in nieuwe YAML
Er moet voor één punt nog een test gemaakt worden, en de expand feature moet nog uitgewerkt worden, wat nog redelijk wat werk kan zijn.
Updated by Erik Hoogland 2 months ago
- Elk veld van de response kan aangemerkt worden als expand
- Voor een url zal het proberen het object op te halen
- De response zal afhangen van de ink in de parameter, net de parameter naam
- parameter 'link' met een url van een EIO, zal in de expand een EIO teruggeven onder 'link'
- Als een object een geen link, of een onbekende link bevat, zal deze als een leeg object worden teruggegeven
- Een link naar een informatieobjecttype uit EIO wordt als object opgehaald, een object (zaakUrl) uit OIO wordt niet opgehaald
Updated by Erik Hoogland about 2 months ago
- Status changed from In Progress to Backlog
- Assignee changed from Erik Hoogland to Contezza Development
Ticket gaat naar de backlog, heeft geen prio momenteel.
Huidige status expand feature:- Er is een DRCExpandHelper, die in AbstractDrcDeclarativeWebScript wordt gewired
- Deze wordt geïmplementeerd bij de API_SEARCH van EnkelvoudiginformatieobjectenPost en de list van GebruiksrechtenGet
- Deze halen de lijst met expand velden uit de body en parameters respectievelijk
- De DRCExpandHelper doet het volgende
- Loopt door de lijst van expand velden;
- Voor veld 'url', wordt de URL lokaal opgebouwd en vervolgs intern opgevraagd. Resultaat is JSONObject;
- Voor veld 'informatieobjecttype' wordt property RGBZModel.PROP_INFORMATIEOBJECTTYPE opgehaald, en de UUID er uit gehaald.
Hiermee wordt het informatieobjecttype opgehaald m.b.v. de drcCatalogiService, en omgezet naar een JSONObject - Als het geen speciaal veld is, wordt het gebruikt om een RGBZ propertyvan dezelfde naam op te halen.
- Als dit bestaat, en het is een interne url, wordt het JSONObject opgehaald.
- Als er geen property bestaat, of het geen geldige interne url bevat, wordt een leeg JSOBObject aangemaakt
- Aangemaakte JSONObjecten worden aan een map toegevoegd
- De map met expanded velden wordt aan het model toegevoegd
- Voor enkelvoudiginformatieobject post en gebruikersrechten get wordt het _expand veld geprint, indien aanwezig.
- Voor het ophalen van interne url's, is er een bean WebScriptInternalInvoker aanwezig.
- Deze werkt nu op basis RestTemplate, met een auth token uit het webscript request
- Voor EIO en gebruikersrechten, zijn basis test geschreven.
- WebScriptInternalInvoker gebruikt nu RestTemplate, dit moet nog een interne Java call worden.
- Er moet nog validatie komen op de expand variabele bij het request. In de referentie implementatie kunnen alleen velden die in de response voorkomen als expand worden meegegeven.
- De expand helper moet nog kunnen omgaan met nested velden in expand, i.e. ondertekening.datum. Dit moet als rgbz:ondertekeningDatum worden opgehaald
- ophalen van expand bij bijvoorbeeld url bestandsdeel bij EIO moet nog worden onderzocht. Dit wordt intern niet als property op eio opgeslagen, maar andersom
- Builden van url voor expand veld "url" werkt nu enkel voor EIO, moet ook werken voor andere types
- Er zijn meerdere buildUrl functies, deze kunnen mogelijk gecentraliseerd worden
- De benodigde endpoint variables en checks zoals isEnkelvoudiginformatieobject en isGebruiksrechtItem zijn al aanwezig
- Expand moet in overige GET (list) en POST (_zoek) webscripts worden verwerkt
- Extra test moeten worden geschreven, om de werkwijze binnen Alfresco tegen de DRC referentie te testen. Er is geen duidelijk documentatie van de werking van expand
- Extra foutafhandeling moet worden ingebouwd. Er moet nog worden bepaald wat er moet gebeuren bij bijvoorbeeld correcte links zonder informatie er achter (HTTP 404)
Updated by Erik Hoogland about 2 months ago
- Related to Project activity #31327: Toevoegen "expand" functie aan Alfresco DRC implementatie added
Updated by Erik Hoogland about 2 months ago
- Status changed from Backlog to In Progress
- Assignee changed from Contezza Development to Erik Hoogland
Na overleg, zal dit ticket worden afgerond zonder expand. Dit zal in ticket #31327 worden afgehandeld. De branch is teruggedraait naar de commit voor development aan expand begon, met een nieuwe branch voor expand.
Openstaande issues:- fix bug in list geberuikersrechten. Dit gebruikt de verkeerde language voor de Alfresco search
- Test schrijven voor `Issue 2241`, moet al goed werken in huidige implementatie
- Code porten naar laatste versie main 7.x
- branch updaten naar laatste versie main 23.x
Updated by Erik Hoogland about 2 months ago
- Status changed from In Progress to Ready in Dev
- Assignee changed from Erik Hoogland to Rick de Rooij
De laatste punten zijn verwerkt, en alle test runnen in beide branches zonder issues.
@Rick de Rooij Kan jij de merge requests reviewen?
23.x: https://git.contezza.nl/community/alfresco-documenten-api/-/merge_requests/6
7.x: https://git.contezza.nl/community/alfresco-documenten-api/-/merge_requests/7
Updated by Rick de Rooij about 2 months ago
- Status changed from Ready in Dev to In Progress
- % Done changed from 0 to 100
Tests uitgevoerd en review is akkoord. Versie 2.2.0 (23.x) en 1.5.0 (7.x) zijn beschikbaar.
Updated by Rick de Rooij about 2 months ago
- Status changed from In Progress to Resolved