Păstrez o pagină veche .aspx cerut de pagină pentru a afișa conținutul este transmis în adresa URL a cererii GET ca parte a șirului de interogare. Rezultatul este că, pe măsură ce continuăm să adăugăm caracteristici, adresa URL devine din ce în ce mai mare.

Mă gândesc să schimb toți parametrii din șirul de interogare în Corpul cererii GET.

Este o decizie bună de proiectare și care este cazul de utilizare al unui corp în GET cerere?

Comentarii

  • De ce nu folosiți o cerere POST?
  • Pentru că nu creez și nu actualizez nimic. Doar recuperez informații de pe server.
  • Se aștepta ca cererile GET să fie idempotente: solicitarea aceleiași adrese URL de mai multe ori îți va oferi întotdeauna un rezultat echivalent. ' Aceasta de ex. permite stocarea în cache (lucru pe care unele browsere și proxy o fac foarte agresiv). Dacă mutați parametrii interogării în corpul solicitării, încălcați această așteptare, așa că vă rugăm să evitați acest lucru. Vă ' vă configurați pentru probleme greu de depanat. Din păcate, unele sisteme au o limită de lungime a adresei URL de ordinul a câtorva KB. Dacă încă vă proiectați API-ul și constatați că veți face față interogărilor foarte complexe, un API GraphQL ar putea fi mai potrivit decât REST.
  • În plus față de ceea ce a spus @amon, punerea unui corp într-un GET cererea încalcă în mod explicit specificațiile HTTP. Utilizați POST.
  • @Manya Comentariile la acest răspuns Stack Overflow discută puțin despre Elasticsearch. Rețineți că Elasticsearch nu este de obicei consumat direct de browsere, ci doar de aplicațiile interne, astfel încât acestea au ceva mai multă flexibilitate – aveți control deplin asupra clientului și a rețelei.

Răspundeți

Cererile GET cu un corp sunt acceptate în specificațiile HTML.

Consultați întrebarea Stack Overflow Este corect această afirmație? Metoda HTTP GET nu are întotdeauna un corp de mesaj pentru o discuție.

Cu toate acestea, este neobișnuit. Veți surprinde oamenii cu acea soluție. Trecerea la un POST este o idee mai bună.

Singurul dezavantaj (de sus?) este acoliții supărați RESTfulness.

Comentarii

  • există dezavantaje tehnice, deoarece multe biblioteci javascript nu au ' nu acceptă GET cu un corp. Pentru bazele de date în care efectuați o căutare, este logic să o faceți în acest fel, dar nu ' nu pot efectua apelul dintr-o aplicație cu o singură pagină către instanța dvs. ElasticSearch sau SOLR (singurele API în care am văzut implementat acest combo).
  • Această întrebare spune același lucru: stackoverflow.com/questions/978061/http-get-with-request-body " Da. Cu alte cuvinte, orice solicitare HTTP mesajul este permis să conțină un corp de mesaj și, prin urmare, trebuie să analizeze mesajele având în vedere acest lucru antichitățile pentru GET, totuși, sunt restricționate astfel încât un corp, dacă există, să nu aibă semnificație semantică pentru cerere. Cerințele privind analiza sunt separate de cerințele privind semantica metodei. Deci, da, puteți trimite un corp cu GET și nu, nu este niciodată util să faceți acest lucru. " Răspunsul propriu-zis are mai multe detalii.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *