Reject `limit=0` in paginated requests
I maintainer di solito rispondono entro 4 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 88/100
Direzione di ricerca
Inizia da BaseWSGIApp._get_slice() in server/app/interfaces/base.py e dalla gestione esistente dei limiti negativi. Aggiungi un caso limit=0 a TestPagination in server/test/interfaces/test_base.py, poi esegui quel test. Il lavoro è completato quando zero viene rifiutato con 400 Bad Request e i test di paginazione passano.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Currently, BaseWSGIApp._get_slice() accepts limit=0, because it parses limit as a NonNegativeInteger. With limit=0, the server returns an empty page together with a cursor pointing to the same position as the request. For example, GET /shells?limit=0 on a non-empty repository returns:
{"paging_metadata":{"cursor":"1"},"result":[]}
A client that follows the cursor until it becomes None therefore loops forever.
The specification (IDTA-01002-3-1, v3.1.2) contradicts itself on whether limit=0 is valid:
- The OpenAPI definition of
limitsetsminimum: 1. - The pagination parameter table defines
LimitasnonNegativeInteger, which allows0.
To me, a page size of 0 is no meaningful behavior as it cannot make progress through a result set.
Rejecting it is the only sensible option, and it matches the OpenAPI definition.
_get_slice() should reject limit=0 with 400 Bad Request, the same way it already rejects negative values. A test for this case should be added to TestPagination in server/test/interfaces/test_base.py.
- Lingua principale
- Python
- Stelle
- 104
- Fork
- 56
- Merge medio
- 12g 13h
- PR unite (30g)
- 5
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di eclipse-basyx/basyx-python-sdk
-
README CI badge is brokenForse già presa Una pull request collegata a questa issue è aperta o già unita. Apertabug documentation
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
eclipse-basyx/basyx-python-sdk#656 ·
I maintainer di solito rispondono entro 4 giorni
-
bug sdk
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
eclipse-basyx/basyx-python-sdk#634 · 3 commenti ·
I maintainer di solito rispondono entro 4 giorni
-
enhancement server
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
eclipse-basyx/basyx-python-sdk#632 ·
I maintainer di solito rispondono entro 4 giorni
-
bug high priority
Difficoltà 2/5 1-3 ore Idoneità per principianti 90/100
eclipse-basyx/basyx-python-sdk#631 ·
I maintainer di solito rispondono entro 4 giorni
-
server: Discovery endpoints status code mismatchForse già presa @JAB1305 l’ha presa 21 giorni fa. Apertabug high priority server
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
eclipse-basyx/basyx-python-sdk#625 · 1 commento ·
I maintainer di solito rispondono entro 4 giorni
Tutte le issue di eclipse-basyx/basyx-python-sdk
Issue simili
-
good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
btclib-org/btclib-node#1955 ·
I maintainer di solito rispondono entro 1 giorno
-
documentation v0.9.2
Difficoltà 2/5 Mezza giornata Idoneità per principianti 72/100
khuisman/mcp-gee-sweet#1033 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
ossf/cve-bin-tool#5966 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 2 giorni
-
write_iceberg ignores the table's write.parquet.compression-codec propertyForse già presa @YuangGao l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
Eventual-Inc/Daft#7606 ·
I maintainer di solito rispondono entro 1 giorno