Fenntartok egy régi .aspx oldalt, amelyben az összes adat amire az oldalnak szüksége van a tartalom megjelenítéséhez, a GET kérelem URL-jében továbbítja a lekérdezési karakterlánc részeként. Ennek az az eredménye, hogy miközben folyamatosan bővítjük a funkciókat, az URL folyamatosan növekszik.

Arra gondolok, hogy az összes paramétert a lekérdezési karaktersorozatról a GET kérelem törzsére helyezzem át.

Jó tervezési döntés, és mi a GET kérelemben szereplő törzs használata?

Megjegyzések

  • Miért ne használna egyszerűen egy POST kérést helyett?
  • Mert nem hozok létre és nem frissítek semmit. Éppen információkat kérek le a szerverről.
  • ' arra számított, hogy a GET kérések idempotensek: ugyanazon URL többszöri kérése mindig egyenértékű eredményt hoz. Ez pl. lehetővé teszi a gyorsítótárat (amit egyes böngészők és proxyk nagyon agresszíven végeznek). Ha lekérdezési paramétereket helyez át a kérelem törzsébe, akkor megsérti ezt az elvárást, ezért kérjük, kerülje ezt. ' nehezen hibakereső problémákhoz állítja be magát. Sajnos egyes rendszerekben az URL hosszkorlátja néhány KB nagyságrendű. Ha még mindig tervezi az API-t, és úgy találja, hogy nagyon összetett lekérdezésekkel fog foglalkozni, akkor a GraphQL API jobban illeszkedik, mint a REST.
  • Amellett, amit @amon mondott, egy testet GET-be helyezünk kérés kifejezetten megsérti a HTTP specifikációt. Használja a POST alkalmazást.
  • @Manya A ehhez a verem túlcsorduláshoz adott válaszhoz adott megjegyzések kissé megvitatják az Elasticsearch-et. Ne feledje, hogy az Elasticsearch-et általában nem közvetlenül a böngészők fogyasztják, hanem csak a belső alkalmazások, ezért valamivel nagyobb rugalmassággal rendelkeznek – Ön teljes mértékben ellenőrzi az ügyfél és a hálózat felett.

Válasz

A HTML-specifikációk támogatják a GÉM kérelmek törzsét támogatják.

Lásd a Verem túlcsordulás kérdést Helyes ez az állítás? A HTTP GET módszer mindig nem tartalmaz üzenetet a beszélgetéshez.

Ez azonban szokatlan. Meglepi az embereket ezzel a megoldással. Jobb ötlet egyszerűen a POST-ra váltani.

Az egyetlen hátrány (felfelé?) a RESTfulness akoliták bosszantása.

Megjegyzések

  • vannak technikai hátrányok, mivel sok javascript könyvtár nem ' nem támogatja a GET-et egy törzzsel. Azoknál az adatbázisoknál, ahol keresést hajt végre, logikus értelme van, hogy így csinálja, de nem ' nem tudja felhívni az egyoldalas alkalmazást az ElasticSearch vagy a SOLR példányra (az egyetlen API, ahol láttam, hogy ez a kombináció megvalósult).
  • Ez a kérdés ugyanazt mondja: stackoverflow.com/questions/978061/http-get-with-request-body " Igen. Vagyis bármilyen HTTP-kérés az üzenet tartalmazhat egy üzenet törzset, és ennek megfelelően elemeznie kell az üzeneteket A GET iránti ellenszenv azonban korlátozott, így ha egy testnek van, annak nincs jelentéstani jelentése a kérelemnek. Az elemzés követelményei elkülönülnek a módszer szemantikájától. Tehát, igen, küldhetsz testet a GET segítségével, és nem, soha nem hasznos ezt megtenni. " A tényleges válasz további részleteket tartalmaz.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük