|
|
Postitatud 16.08.2016 13:52:38
|
|
|
|

WebAPI-s saab päringu keha (HttpContent) lugeda ainult korra, mitte vahemällu salvestada ja seda saab lugeda ainult edasi.
Näiteks:
1. Taotluse aadress: /?id=123&name=bob
Serveripoolne meetod: void Action(int id, string name) // Kõik parameetrid on lihtsad tüübid, seega tulevad need kõik URL-ist
2. Taotluse aadress: /?id=123&name=bob
Serveripoolne meetod: void Action([FromUri] int id, [FromUri] string name) // Sama mis eespool
void Action([FromBody] string name); [FormBody] atribuut näitab, et kogu keha loetakse stringina argumendina
3. Taotluse aadress: /?id=123
Klassi määratlus:
public class Customer { // Kompleksne objektitüüp, mis on määratletud public string Name { get; seatud; } public int Age { get; seatud; }
}
Serveripoolne meetod: void Action(int id, Customer c) // Parameetri id loetakse päringustringist, parameeter c on keerukas kliendi objektiklass, mida loetakse kehast läbi vorminduse
Serveripoolne meetod: tühja tegevus (Klient c1, Klient c2) // Viga! Mitmed parameetrid on keerulised tüübid ja kõik püüavad lugeda kehast, mida saab lugeda vaid korra
Serveripoolne meetod: void action([FromUri] Klient c1, Klient c2) // Jah! Erinevalt eelnevast toimingust loetakse komplekstüüpi C1 URL-ist ja C2 kehast
4. ModelBinder meetod:
void Action([ModelBinder(MyCustomBinder)] SomeType c) // Näitab, et parameetri lahendamiseks kasutatakse konkreetset mudeli binderit
[ModelBinder(MyCustomBinder)] avalik klass SomeType { } // Rakenda see reegel kõigile SomeType tüübi parameetritele, määrates [ModelBidner(MyCustomBinder)] atribuudi konkreetsele tüübile SomeType
void Action (SomeType c) // Kuna c tüüp on SomeType, rakendatakse SomeType'i omadusi selle mudeli sidumise määramiseks
Kokkuvõte:
1. Vaikimisi lihtsad parameetrid läbivad URL-i parameetrid, eranditega:
1.1 Kui marsruut sisaldab id-parameetrit, läbib id parameeter marsruudi;
1.2 Kui parameeter on märgitud kui [FromBody], võib parameeter olla lihtne parameeter ning klient saab selle edastada POST-i kaudu: $.ajax(url, '=value') või $.ajax({url: url, data: {'': 'value'}});
2. Vaikimisi komplekssed parameetrid (kohandatud entiteediklassid) edastatakse POST-i kaudu, eranditega:
2.1 Kui parameetri väärtus on märgitud kui [FromUri], võib parameeter olla kompleksne parameeter;
3. Parameeter märgiga [FromBody] võib ilmuda ainult korra, parameeter, mis on märgitud kui [FromUri], võib esineda mitu korda ning kui parameeter on märgitud kui [FromUri], on lihtne parameeter, saab sildi eemaldada. |
Eelmine:.NET Oracle mitme tabeli päringumeetod, rumal meetod.Järgmine:C# kasutab peegeldust, et määrata, kas omadus on määratud
|