Skip to content
This repository was archived by the owner on Jun 30, 2021. It is now read-only.

Commit 2c6cdcf

Browse files
Merge pull request #16 from digipolisantwerpdocumentation/paging-strategy
PagingStrategy parameter conform de styling richtlijnen.
2 parents 2f7b15a + 0547120 commit 2c6cdcf

File tree

1 file changed

+25
-23
lines changed

1 file changed

+25
-23
lines changed

README.md

Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -163,14 +163,16 @@ Swagger v2.0, JSON
163163
- paginatie
164164
- reserved : **page**= (optional parameter, default value=1)
165165
- reserved : **pagesize**=(optional parameter, default=bepaald door API)
166+
- reserved : **paging-strategy**=(optional parameter, default=withCount)
167+
166168
- resource representation
167169

168170
- altijd via body, nooit via query parameters
169171

170172
### Paginatie
171173

172174
- altijd gebruiken bij ophalen van collecties
173-
- query parameters : **page**= en **pagesize**= en **pagingStrategy**=
175+
- query parameters : **page**= en **pagesize**= en **paging-strategy**=
174176
- optioneel mee te geven door clients (bij ontbreken worden de default waardes gebruikt)
175177
- 1-based (1e pagina is pagina 1)
176178
- Response volgens HAL specificatie
@@ -180,7 +182,7 @@ Swagger v2.0, JSON
180182
- \_embedded
181183
- \_page
182184
- voorbeelden
183-
- beide `pagingStrategy` waardes (`noCount` en `withCount`) moeten ondersteund worden
185+
- beide `paging-strategy` waardes (`noCount` en `withCount`) moeten ondersteund worden
184186

185187
### Event resources
186188

@@ -823,17 +825,17 @@ Paginatie informatie wordt **steeds** terug gegeven bij het ophalen van collecti
823825

824826
Vanuit consumer standpunt is het noodzakelijk dat volgende informatie in de response wordt gegeven om voldoende informatie te bekomen rond de pagina's:
825827

826-
| Info | | Verplicht |
827-
| ---------------------------- | --------------------------- | ------------------------------ |
828-
| Link naar de eerste pagina | | Ja |
829-
| Link naar de laatste pagina | | Ja |
830-
| Link naar de vorige pagina | | Ja |
831-
| Link naar de volgende pagina | | Ja |
832-
| Extra metadata : | | |
833-
| | Huidig paginanummer | Ja |
834-
| | Aantal elementen per pagina | Ja |
835-
| | Totaal aantal elementen | Afhankelijk van pagingStrategy |
836-
| | Totaal aantal pagina's | Afhankelijk van pagingStrategy |
828+
| Info | | Verplicht |
829+
| ---------------------------- | --------------------------- | ------------------------------- |
830+
| Link naar de eerste pagina | | Ja |
831+
| Link naar de laatste pagina | | Ja |
832+
| Link naar de vorige pagina | | Ja |
833+
| Link naar de volgende pagina | | Ja |
834+
| Extra metadata : | | |
835+
| | Huidig paginanummer | Ja |
836+
| | Aantal elementen per pagina | Ja |
837+
| | Totaal aantal elementen | Afhankelijk van paging-strategy |
838+
| | Totaal aantal pagina's | Afhankelijk van paging-strategy |
837839

838840

839841

@@ -843,11 +845,11 @@ Daarom kiezen we met onze API requirements voor een oplossing die 2 strategieën
843845
- een snellere opvraging zonder verplichte 'count'
844846
- een potentieel tragere opvraging tengevolge een impliciet 'count'-mechanisme
845847

846-
De client toepassing kiest welke strategie wordt toegepast dmv van een (optionele) query parameter : **`pagingStrategy`** (zie verder).
848+
De client toepassing kiest welke strategie wordt toegepast dmv van een (optionele) query parameter : **`paging-strategy`** (zie verder).
847849

848850
### Paginatie query parameters
849851

850-
Het ophalen van een bepaalde pagina zelf dient te gebeuren door middel van de **`page`** en **`pagesize`** query parameters (behalve voor de `last` link bij `pagingStrategy=noCount`, zie verder).
852+
Het ophalen van een bepaalde pagina zelf dient te gebeuren door middel van de **`page`** en **`pagesize`** query parameters (behalve voor de `last` link bij `paging-strategy=noCount`, zie verder).
851853
``` prettyprint
852854
/partners?page=1&pagesize=10
853855
```
@@ -859,7 +861,7 @@ De paginatie query parameters zijn **optioneel**. Dat maakt dat wanneer deze **n
859861
- Een beperkte set van resources wordt teruggegeven bij het bevragen van collections op basis van een default page size die voor elke API wordt bepaald.
860862
- Steeds de eerste pagina wordt terug gegeven.
861863

862-
Om de paging strategie mee te geven, gebruikt de consumer de optionele parameter **`pagingStrategy`**. Deze heeft 2 mogelijke waardes :
864+
Om de paging strategie mee te geven, gebruikt de consumer de optionele parameter **`paging-strategy`**. Deze heeft 2 mogelijke waardes :
863865
- withCount (default als de query parameter niet wordt meegegeven)
864866
- noCount
865867

@@ -940,9 +942,9 @@ Dit resulteert in volgende structuur.
940942
```
941943

942944
Het **\_page** reserved keyword vormt geen onderdeel van de HAL specificatie, maar is extra metadata die in de response message komt om
943-
een indicatie te krijgen van de huidige paginanummer, aantal elementen per pagina, het totaal aantal pagina's en het totaal aantal elementen en vereenvoudigt de bewerkingen langs consumer kant om deze informatie te bekomen. Bij **`pagingStrategy=noCount`** worden `totalElements` en `totalPages` weg gelaten.
945+
een indicatie te krijgen van de huidige paginanummer, aantal elementen per pagina, het totaal aantal pagina's en het totaal aantal elementen en vereenvoudigt de bewerkingen langs consumer kant om deze informatie te bekomen. Bij **`paging-strategy=noCount`** worden `totalElements` en `totalPages` weg gelaten.
944946

945-
Voorbeeld bij `pagingStrategy=withCount` :
947+
Voorbeeld bij `paging-strategy=withCount` :
946948
```json
947949
{
948950
"_page": {
@@ -954,7 +956,7 @@ Voorbeeld bij `pagingStrategy=withCount` :
954956
}
955957
```
956958

957-
Voorbeeld bij `pagingStrategy=noCount` :
959+
Voorbeeld bij `paging-strategy=noCount` :
958960
```json
959961
{
960962
"_page": {
@@ -999,14 +1001,14 @@ Alle aspecten van paginatie samenvoegend geeft dit volgende response wrapper mes
9991001
}
10001002
```
10011003

1002-
Zoals reeds vermeld vallen `totalElements` en `totalPages` weg bij `pagingStrategy=noCount`.
1004+
Zoals reeds vermeld vallen `totalElements` en `totalPages` weg bij `paging-strategy=noCount`.
10031005

10041006
#### Een voorbeeld
10051007

10061008
Het ophalen van business parties (withCount)
10071009

10081010
``` prettyprint
1009-
https://api-gateway/digipolis/business-party/v1/business-parties?pagingStrategy=withCount
1011+
https://api-gateway/digipolis/business-party/v1/business-parties?paging-strategy=withCount
10101012
```
10111013

10121014
Geeft als resultaat
@@ -1044,7 +1046,7 @@ Geeft als resultaat
10441046
Het ophalen van business parties (noCount)
10451047

10461048
``` prettyprint
1047-
https://api-gateway/digipolis/business-party/v1/business-parties?pagingStrategy=noCount
1049+
https://api-gateway/digipolis/business-party/v1/business-parties?paging-strategy=noCount
10481050
```
10491051

10501052
Geeft als resultaat
@@ -1079,7 +1081,7 @@ Geeft als resultaat
10791081

10801082
In de **last** link wordt gebruik gemaakt van **page=last** ipv het exacte paginanummer om te vermijden dat een count moet uitgevoerd worden bij het ophalen van de lijst. Dit houdt wel impliciet in **dat de API deze waarde (=last) ook verplicht moet ondersteunen**. Pas wanneer deze wordt gebruikt zal de API een count uitvoeren om op dat moment de laatste pagina te berekenen en terug te geven.
10811083

1082-
Een API moet altijd beide `pagingStrategy` methodes ondersteunen.
1084+
Een API moet altijd beide `paging-strategy` methodes ondersteunen.
10831085

10841086
**Bij het ophalen van een collection zonder specificatie van query parameters dient paginatie informatie altijd aanwezig te zijn in de
10851087
response message**, gebruik makend van de `withCount` paginatie strategie.

0 commit comments

Comments
 (0)