Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Als gebruiker wil ik een lijst van documenten (metagegevens) bij een zaak kunnen opvragen #1881

Closed
joeribekker opened this issue Aug 25, 2021 · 5 comments

Comments

@joeribekker
Copy link
Collaborator

...zodat ik niet een lijst zaak-document relaties hoef op te vragen om vervolgens elk document (metagegevens) individueel op te vragen. Het gaat hier over de metagegevens zoals titel, auteur, bestandsnaam, etc. Dus niet het document zelf en niet de relatie tussen de zaak en het document (die kan je wel in bulk opvragen).

Zeker in combinatie met CMIS is dit een performance killer.
De enige manier om nu een lijst van documenten (metagegevens) op te vragen is als volgt:

1a. Haal Zaken API zaakinformatieobjecten op, gefilterd op een zaak (?zaak=<zaak-url>), of
1b. Haal Documenten API objectinformatieobjecten op, gefilterd op een zaak (?object=<zaak-url>)
2. Haal voor elke relatie het document (metagegevens) op: Documenten API enkelvoudiginformatieobjecten/<uuid>

Bij 100 documenten bij een zaak is dit dus 101 API calls om de metagegevens van die 100 documenten te laten zien (en dat wil je nogal snel in een gebruikersinterface).

Voorstel

Voeg een query parameter toe aan Documenten API zodat dit kan: enkelvoudiginformatieobjecten?objectinformatieobject__object=<zaak-url>. Dit lijkt op wat er al is voor de Zaken API: Het filteren van zaken kan op de rol-relatie.

Nu is er nog maar 1 call nodig:

  1. Haal Documenten API enkelvoudiginformatieobjecten op, gefilterd op een zaak (?objectinformatieobject__object=<zaak-url>)
@sergei-maertens
Copy link
Collaborator

Alternatief: een bulk data endpoint waar je een lijst van resource URLs/UUIDs kan meegeven (moeten allemaal zelf resource zijn) die deze data teruggeeft. Ik dacht dat hier een issue voor was, maar ik kan het niet vinden. Hieraan ook gerelateerd is #1697, maar ik zie liever de volgende request:

POST /api/v1/<resource>/_get-bulk
Content-Type: application/json

[
    "9ec5a251-f315-46cb-a1c1-53da2a47c296"
    "f8fdfcc0-df27-4ae1-88ba-91df3c524251"
    "49344872-380a-4993-917a-88553fb3a1b6"
    "38486df2-e25b-4e3c-8c6b-7892444534c5"
    "c4d0021a-724a-4ea4-9c27-3207b7d642dc"
    "ab0ef16c-c084-4a65-9b98-6e74be06e098"
    "a4c1f7c2-0769-4c52-b273-d28451011914"
    "e5c9399f-aeeb-4304-8459-5df7f3cfff19"
    "bc93d9c4-4a6e-48e7-9bd1-367e6d9d46db"
    "9b7dfce6-f3d6-4706-ba56-12ae645f9dab"
]

In totaal krijg je dan dus de volgende calls:

  1. Haal zaken API ZIOs op, gefiltered op zaak URL. Dit geeft je een lijst van documenten waar je het UUID uit kan halen.
  2. Haal bij Documenten API met de bulk call de metadata op

Dit patroon zou ik dan ook graag voor alle resources zien eigenlijk, daar hebben Michiel en ik het wel eens eerder over gehad.

@michielverhoef
Copy link
Collaborator

Het voorstel van Sergei lijkt heel veel op dit issue om een lijst van zaken op basis van een lijst UUIDs op te halen: #1728

En inderdaaad, daar hebben we het eerder over gehad en ik denk dat het goed is om voor alle resources dit mechanisme op te nemen. Als iedereen het eens is met de oplossing die Sergei voorstelt neem ik het op in Documenten API 1.2.

@sergei-maertens
Copy link
Collaborator

yes, dat is het issue wat ik zocht, dankje Michiel!

@michielverhoef
Copy link
Collaborator

@MatthijsBekendam In de Zaken API, resource Zaken is al een oplossing hiervoor gemaakt zie #1728. Iets dergelijks moet er ook komen voor EnkelvoudigeInformatieobjecten.

@michielverhoef
Copy link
Collaborator

https://documenten-api.test.vng.cloud/api/v1/schema/#tag/enkelvoudiginformatieobjecten/operation/enkelvoudiginformatieobject__zoek

Dit zou de operatie dan moeten worden.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants