50 geriausių „Asp.Net Web API“ interviu klausimų ir atsakymų

Anonim

Atsisiųsti PDF

1) Kas yra žiniatinklio API?

„WebAPI“ yra sistema, padedanti kurti / plėtoti HTTP paslaugas.

2) Kodėl reikalinga žiniatinklio API? Ar galima naudotis „RESTful“ paslaugomis naudojantis WCF?

Taip, mes vis dar galime plėtoti RESTful paslaugas su WCF. Tačiau yra dvi pagrindinės priežastys, kurios skatina vartotojus naudoti „Web API“, o ne „RESTful“ paslaugas.

  • Kuriant „RESTful“ paslaugas žiniatinklio API padidina TDD (Test Data Driven) požiūrį.
  • Jei norime plėtoti RESTful paslaugas WCF, jums tikrai reikia daugybės konfigūracijos parametrų, URI šablonų, sutarčių ir galinių taškų, kad galėtumėte kurti RESTful paslaugas naudodami žiniatinklio API.

3) Kodėl verta rinktis žiniatinklio API?

  • Jis naudojamas paprastoms, ne SOAP pagrįstoms HTTP paslaugoms kurti
  • Tai taip pat yra paprastas būdas kurti naudojant žiniatinklio API. Su WCF REST paslaugomis
  • Jis pagrįstas HTTP ir jį lengva apibrėžti, atskleisti ir naudoti „REST“ būdu.
  • Tai lengva konstrukcija ir idealiai tinka įrenginiams, kurių pralaidumas yra ribotas, pvz., Išmaniesiems telefonams.

4) Ar teisinga, kad ASP.NET žiniatinklio API pakeitė WCF?

Netiesa, kad ASP.NET žiniatinklio API pakeitė WCF. Tiesą sakant, tai yra dar vienas būdas sukurti ne SOAP pagrįstas paslaugas, ty paprastą XML arba JSON eilutę.

5) Kokie yra „Web API“ pranašumai?

Žiniatinklio API privalumai yra šie:

  • OData
  • Filtrai
  • Derybos dėl turinio
  • Savarankiškas priegloba
  • Maršrutai
  • Modelių įrišimai

6) Kokie pagrindiniai grąžinimo tipai palaikomi žiniatinklio API?

Žiniatinklio API valdiklio veiksmas gali grąžinti šias reikšmes:

  • Negalima - jis grąžins tuščią turinį
  • HttpResponseMessage - konvertuos atsakymą į HTTP pranešimą.
  • IHttpActionResult - vidiniai skambučiai ExecuteAsync sukurti HttpResponseMessage
  • Kiti tipai - nuosekliąją grąžinimo vertę galite įrašyti į atsako tekstą

7) Kuris protokolas palaiko žiniatinklio API?

„Web App“ palaiko HTTP protokolą.

8) Kuri .NET sistema palaiko žiniatinklio API?

NET 4.0 ir naujesnė versija palaiko žiniatinklio API.

9) Žiniatinklio API naudoja kurią nors iš šių atvirojo kodo bibliotekų JSON serizavimui?

Žiniatinklio API naudoja Json.NET biblioteką JSON serializavimui.

10) Pagal numatytuosius nustatymus žiniatinklio API siunčia HTTP atsakymą su kuriuo iš šių būsenos kodų visoms nepagautoms išimtims?

500 Vidinė serverio klaida

11) Koks yra didžiausias „Kitų grąžinimo tipų“ trūkumas žiniatinklio API?

Didžiausias šio požiūrio trūkumas yra tas, kad negalite tiesiogiai grąžinti klaidos kodo, pvz., 404 klaida.

12) Kaip kuriate „HTMLResponseMessage“?

Tai yra būdas sukonstruoti tai padaryti,

public class TestController : ApiController{public HttpResponseMessage Get(){HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, "value");response.Content = new StringContent("Testing", Encoding.Unicode);response.Headers.CacheControl = new CacheControlHeaderValue(){MaxAge = TimeSpan.FromMinutes(20)};return response;}}

13) Kas yra žiniatinklio API nukreipimas?

Maršrutai yra modelių atitikimas, kaip ir MVC.

Visi maršrutai yra užregistruoti maršrutų lentelėse.

Pavyzdžiui:

Routes.MapHttpRoute(Name: "ExampleWebAPIRoute",routeTemplate: “api/{controller}/{id}defaults: new { id = RouteParameter.Optional}

14) Kas yra muilas?

SOAP yra XML pranešimo formatas, naudojamas žiniatinklio paslaugų sąveikose. Tai leidžia siųsti pranešimus per HTTP arba JMS, tačiau gali būti naudojami ir kiti perdavimo protokolai. Tai taip pat yra XML pagrįstas pranešimų siuntimo protokolas, skirtas keistis informacija tarp kompiuterių.

15) Kokia yra REST naudojimo žiniatinklio API nauda?

„REST“ naudojama norint mažiau duomenų perduoti tarp kliento ir serverio, todėl jis yra idealus būdas naudoti jį programose mobiliesiems. „Web API“ taip pat palaiko HTTP protokolą. Todėl jame vėl įvestas tradicinis HTTP veiksmažodžių bendravimo būdas.

16) Kaip mes galime naudoti žiniatinklio API su ASP.NET žiniatinklio forma?

Žiniatinklio API galima naudoti su ASP.NET žiniatinklio forma

Tai galima atlikti trimis paprastais žingsniais:

  1. Sukurkite žiniatinklio API valdiklį,
  2. Pridėkite maršruto lentelę prie „Global.sax“ metodo „Application_Start“
  3. Tada turite atlikti „jQuery AJAX Call to Web API“ metodą ir gauti duomenis.

17) Kaip apriboti prieigą prie žiniatinklio API iki konkretaus HTTP veiksmažodžio?

Atributų programavimas vaidina svarbų vaidmenį. Lengva apriboti prieigą prie ASP.NET žiniatinklio API metodo, kurį reikia iškviesti naudojant tam tikrą HTTP metodą.

18) Ar galite naudoti žiniatinklio API su ASP.NET žiniatinklio forma?

Taip, galima naudoti žiniatinklio API su ASP.Net žiniatinklio forma. Kadangi jis yra sujungtas su ASP.NET MVC sistema. Tačiau jį galima naudoti su ASP.NET žiniatinklio forma.

19) Kaip priskirti ASP.NET žiniatinklio API veiksmo pseudonimą?

Žiniatinklio API veiksmui galime suteikti tą patį pavadinimą, kaip ir ASP.NET MVC atveju, naudodami atributą „ActionName“ taip:

[HttpPost][ActionName("SaveStudentInfo")]public void UpdateStudent(Student aStudent){StudentRepository.AddStudent(aStudent);}

20) Ką reiškia „TestApi“?

„TestApi“ yra naudinga API biblioteka. Naudodamasis šios bibliotekos testeriu kūrėjas gali sukurti .NET programos testavimo įrankius ir automatinius testus, naudodamas duomenų struktūrą ir algoritmus.

21) Paaiškinti išimčių filtrus?

Jis bus vykdomas, kai nebus išnagrinėtos išimtys ir išmetama iš valdiklio metodo. Išimties priežastis gali būti bet kokia. Išimčių filtrai įdiegs „IExceptionFilter“ sąsają.

22) Kaip galime užregistruoti išimties filtrą iš veiksmo?

Galime užregistruoti veiksmų išimčių filtrą naudodami šį kodą:

[NotImplExceptionFilter]public TestCustomer GetMyTestCustomer(int custid){//write the code}

23) Kaip galite grąžinti „View from ASP.NET Web API“ metodą?

Ne, negalime grąžinti rodinio iš ASP.NET žiniatinklio API metodo. Žiniatinklio API sukuria HTTP paslaugas, kurios pateikia neapdorotus duomenis. Tačiau tai įmanoma ir taikant ASP.NET MVC.

24) Kaip registruoti išimčių filtrą visame pasaulyje?

Išimčių filtrą galima registruoti visame pasaulyje naudojant šį kodą

„GlobalConfiguration.Configuration.Filters.Add“ (nauja

„MyTestCustomerStore.NotImplExceptionFilterAttribute ()“;

25) Paaiškinkite, kas yra poilsis ir poilsis?

REST reiškia reprezentacinį valstybės perdavimą; tai visiškai naujas internetinės programos rašymo aspektas.

RESTFUL: Tai terminas, parašytas taikant REST architektūrines koncepcijas, vadinamas RESTful paslaugomis. Jis orientuotas į sistemos išteklius ir į tai, kaip išteklių būklė turėtų būti perkelta per HTTP protokolą.

26) Pateikite vieną žiniatinklio API maršruto pavyzdį?

Config.Routes.MapHttpRoute(name: "MyRoute,"//route namerouteTemplate: "api/{controller}/{action}/{id}",//as you can see "API" is at the beginning.defaults: new { id = RouteParameter.Optional });

27) Kaip galite tvarkyti žiniatinklio API klaidas?

Keletas žiniatinklio API yra prieinamos klaidoms tvarkyti. Tai yra „HttpError“, „Išimties filtrai“, „HttpResponseException“ ir „Išimties filtrų registravimas“.

28) Kokios naujos funkcijos yra su ASP.NET Web API 2.0?

Naujausios „ASP.NET Web API Framework v2.0“ funkcijos yra šios:

  • Atributų maršrutas
  • Kryžminis šaltinių bendrinimas
  • Išorinis autentifikavimas
  • Atidarykite žiniatinklio sąsają NET
  • „HttpActionResult“
  • Žiniatinklio API OData

29) Kaip galite apriboti prieigos metodus iki konkrečių HTTP veiksmažodžių žiniatinklio API?

Naudojant atributus (pvz., HTTP veiksmažodžius), žiniatinklio API galima įdiegti prieigos apribojimus.

Galima apibrėžti HTTP veiksmažodžius kaip atributą, ribojantį prieigą. Pavyzdys:

[HttpPost]public void Method1(Class obj){//logic

30) Kaip galite perduoti kelis sudėtingus tipus žiniatinklio API?

Du būdai perduoti sudėtingus tipus žiniatinklio API -

„ArrayList“ ir „Newtonsoft“ masyvo naudojimas

31) Parašykite kodą, kad perduotumėte „ArrayList“ žiniatinklio API?

ArrayList paramList = new ArrayList();Category c = new Category { CategoryId = 1, CategoryName =“MobilePhones”};Product p = new Product { Productcode = 1, Name = “MotoG”, Price = 15500, CategoryID = 1 };paramList.Add(c);paramList.Add(p);

32) Įvardykite žiniatinklio API kūrimo ar testavimo įrankius ar API?

„REST“ API žiniatinklio paslaugų testavimo įrankiai apima:

  1. Džersio API
  2. CFX
  3. Ašis
  4. „Restlet“

33) Kas yra poilsis?

REST yra architektūrinis stilius. Ji apibrėžė masto paslaugų kūrimo gaires. REST naudojamas kartu su HTTP protokolu, naudojant jo veiksmažodžius GET, PUT, POST ir DELETE.

34) Kaip testuoti žiniatinklio API?

Vieneto testą galime atlikti naudodami žiniatinklio API įrankius, tokius kaip „Fiddler“.

Čia yra keletas nustatymų, kuriuos reikia atlikti, jei naudojate

„Fiddler -Compose“ skirtukas -> Įveskite užklausos antraštes -> Įveskite užklausos turinį ir vykdykite

35) Kaip mes galime apriboti prieigą prie metodų su konkrečiais HTTP veiksmažodžiais žiniatinklio API?

Šiai funkcijai plačiai naudojamas atributų programavimas. Žiniatinklio API taip pat leidžia apriboti skambinimo metodų prieigą naudojant konkrečius HTTP veiksmažodžius. Taip pat galima apibrėžti HTTP veiksmažodžius kaip atributą virš metodo.

36) Kas yra „DelegatingHandler“ naudojimas?

„DelegatingHandler“ naudojamas žiniatinklio API, kad būtų atstovaujama pranešimų tvarkytojams prieš nukreipiant.

37) Kaip galime užregistruoti išimties filtrą iš veiksmo?

Galime registruoti veiksmų išimčių filtrą naudodami šį kodą

[NotImplExceptionFilter]public TestCust GetMyTestCust (int custno){//write the code}

38) Pasakykite man kodo fragmentą, kad parodytumėte, kaip galime grąžinti 404 klaidas iš „HttpError“?

404 klaidos grąžinimo iš „HttpError“ kodas

eilutės pranešimas = string.Format („TestCustomer id = {0} nerastas“, kliento ID);

grąžinti Request.CreateErrorResponse (HttpStatusCode.NotFound, pranešimas);

39) Paaiškinkite kodo fragmentą, kad užregistruotumėte valdiklio išimčių filtrus?

[NotImplExceptionFilter]public class TestCustController : Controller{//Your code goes here}

40) Kuris protokolas palaiko žiniatinklio API?

„Web App“ palaiko HTTP protokolą

41) Kuris iš šių .NET pagrindų palaiko žiniatinklio API?

Žiniatinklio API palaiko NET 4.0 versija

42) Kuria žiniatinklio API naudoja JSON serializavimui?

Žiniatinklio API naudoja Json.NET biblioteką JSON serializavimui.

43) Pagal numatytuosius nustatymus žiniatinklio API siunčia HTTP atsakymą su kuriuo iš šių būsenos kodų visoms nepagautoms išimtims?

500 Vidinė serverio klaida

44) Paaiškinkite klaidos valdymo metodą naudojant „HttpError“ žiniatinklio API?

WEB API HttpError naudojama klaidos informacijai į atsako tekstą įterpti. Taip pat gali būti naudojamas „CreateErrorResponse“ metodas, kuris yra plėtinio metodas, apibrėžtas „HttpRequestMessageExtension“.

45) Kaip mes galime registruoti išimčių filtrą visame pasaulyje?

Išimčių filtrą galime registruoti visame pasaulyje naudodami šį kodą:

GlobalConfiguration.Configuration.Filters.Add (new MyTestCustomerStore.NotImplExceptionFilterAttribute());

46) Kaip tvarkyti žiniatinklio API klaidas?

Keletas žiniatinklio API yra prieinamos klaidoms tvarkyti. Tai yra „HttpError“, „HttpResponseException“, „Išimties filtrai“, „Išimties filtrų registravimas“.

47) Kokia WebAPI nauda prieš WCF?

WCF paslaugos naudoja SOAP protokolą, o HTTP niekada nenaudoja SOAP protokolo. Štai kodėl „WebAPI“ paslaugos yra lengvos, nes SOAP nenaudojamas. Tai taip pat sumažina duomenis, kurie perduodami atnaujinant tarnybą. Be to, jai niekada nereikia per daug konfigūruoti. Todėl klientas gali sąveikauti su paslauga naudodamas HTTP veiksmažodžius.

48) Valstybiniai skirtumai tarp MVC ir WebAPI

MVC sistema naudojama kuriant programas, turinčias vartotojo sąsają. Tam rodinius galima naudoti kuriant vartotojo sąsają.

„WebAPI“ naudojama kuriant HTTP paslaugas. Kitos programos taip pat gali būti vadinamos „WebAPI“ metodais, norint gauti tuos duomenis.

49) Kas gali vartoti „WebAPI“?

„WebAPI“ gali naudoti bet kuris klientas, palaikantis HTTP veiksmažodžius, pvz., GET, PUT, DELETE, POST. Kadangi „WebAPI“ paslaugoms nereikia jokios konfigūracijos, jas labai lengva naudoti bet kuriam klientui. Nepažeisti, net ir nešiojamieji įrenginiai, pvz., Mobilieji įrenginiai, gali lengvai naudoti „WebAPI“, o tai tikrai yra didžiausias šios technologijos privalumas.

50) Kaip galime įsitikinti, kad žiniatinklio API pateikia tik JSON duomenis?

Norėdami, kad žiniatinklio API sugretintų grįžtamąjį objektą į JSON formatą ir grąžintų tik JSON duomenis. Tam bet kuriame MVC žiniatinklio API projekte turėtumėte pridėti šį kodą „WebApiConfig.cs“ klasėje:

//JsonFormatter//MediaTypeHeaderValueConfig.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/json"));123//JsonFormatter//MediaTypeHeaderValueConfig.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/json"))