Struttura di riposo in cui la "scoperta" non è possibile
-
28-10-2019 - |
Domanda
Ho difficoltà a capire qualsiasi opzione su come definire al meglio un servizio di riposo/odiaoas in cui elencare esauriente le opzioni di risorse disponibili non è una possibilità dovuta al numero enorme di essi.
In particolare, una parte del sistema sarebbe risorse per le statistiche di utilizzo delle parole indicizzate in un grande corpus di testo - qualcosa come ottenere http://mysite.org/word_statistics/foobar Ciò restituisce informazioni su Foobar e Uri a documenti in cui viene utilizzato Foobar.
Tuttavia, non posso fornire alcun modo ragionevole in cui l'app potrebbe scoprire l'attuale http://mysite.org/word_statistics/foobar Link - L'approccio canonico sembra essere quello di fornire una risorsa come http://mysite.org/word_statistics Ciò restituirebbe un elenco dei singoli URI, ma nel mio caso quella lista sarebbe intorno a un gigabyte, quindi non ragionevolmente pratico. Quindi avrei bisogno di dare all'App di richiesta qualcosa di simile http://mysite.org/word_statistics/{your_query_here}, ma non sembra esserci un modo riposante per farlo.
Come dovrebbe essere fatto correttamente?
Soluzione
Seguirei solo il classico modello di ricerca utilizzato in molti luoghi.
http://example.org/word_statistics - Ciò restituirebbe tutto, parole e link, ma non vuoi restituire tutto, quindi non lo fai e invece restituire il codice di errore appropriato con forse descrizioni di quali opzioni di query supporti. Oppure potresti restituire tutto, ma in pagine (10, 100, 1000 parole alla volta ...).
http://example.org/word_statistics/{Word} - Le statistiche per la parola data.
http://example.org/word_statistics?like=word - Questo restituisce un elenco di parole che sono "simili", questo potrebbe gestire l'errato e la soundalike, o altro.
http://example.org/word_statistics?from_word=word1&to_word=word2 - Restituisce un elenco di parole che inizia, in ordine alfabetico, con da_word e va a To_word, ma con lo stesso limite e i vincoli di paging che avresti per l'elenco originale.
Potresti anche fare qualcosa di simile:
- http://example.org/{Documento}/Words - che restituisce le parole che sono solo in quel documento, con collegamenti alle loro statistiche.
Tutti i tipi di cose che puoi fare qui. Ma l'essenza è che un modello di ricerca di base dovrebbe riempire prontamente la necessità.