50 Soalan dan Jawapan Temuduga API Web Asp.Net Teratas

Anonim

Muat turun PDF

1) Apa itu Web API?

WebAPI adalah kerangka kerja yang membantu anda membina / mengembangkan perkhidmatan HTTP.

2) Mengapa API Web diperlukan? Adakah mungkin menggunakan perkhidmatan RESTful menggunakan WCF?

Ya, kami masih boleh mengembangkan perkhidmatan RESTful dengan WCF. Namun, ada dua sebab utama yang mendorong pengguna menggunakan API Web dan bukannya perkhidmatan RESTful.

  • Web API meningkatkan pendekatan TDD (Test Data Driven) dalam pengembangan perkhidmatan RESTful.
  • Sekiranya kami ingin mengembangkan perkhidmatan RESTful di WCF, anda pasti memerlukan banyak tetapan konfigurasi, templat URI, kontrak & titik akhir untuk mengembangkan perkhidmatan RESTful menggunakan API web.

3) Mengapa memilih Web API?

  • Ini digunakan untuk membuat Perkhidmatan HTTP berasaskan SOAP yang sederhana
  • Ini juga merupakan kaedah mudah untuk dibuat dengan Web API. Dengan Perkhidmatan WCF REST
  • Ia didasarkan pada HTTP dan mudah didefinisikan, diekspos dan digunakan dengan cara REST-ful.
  • Senibina ringan dan sesuai untuk peranti yang mempunyai lebar jalur terhad seperti telefon pintar.

4) Betul bahawa ASP.NET Web API telah menggantikan WCF?

Sama sekali tidak benar bahawa API Web ASP.NET telah menggantikan WCF. Sebenarnya, ini adalah cara lain untuk membina perkhidmatan berasaskan bukan SOAP, iaitu, string XML atau JSON biasa.

5) Apakah kelebihan API Web?

Kelebihan API Web adalah:

  • OData
  • Penapis
  • Rundingan Kandungan
  • Pelayan Diri
  • Laluan
  • Ikatan Model

6) Apakah jenis pengembalian utama yang disokong dalam Web API?

Tindakan pengawal API Web dapat mengembalikan nilai berikut:

  • Tidak sah - Ia akan mengembalikan kandungan kosong
  • HttpResponseMessage - Ia akan menukar tindak balas kepada mesej HTTP.
  • IHttpActionResult - memanggil ExecuteAsync secara dalaman untuk membuat HttpResponseMessage
  • Jenis lain - Anda boleh menuliskan nilai pulangan bersiri ke dalam badan respons

7) API Web menyokong protokol mana?

Aplikasi Web menyokong protokol HTTP.

8) Kerangka .NET mana yang menyokong API Web?

Versi NET 4.0 dan ke atas menyokong API web.

9) API Web menggunakan pustaka sumber terbuka berikut untuk siri bersiri JSON?

API Web menggunakan perpustakaan Json.NET untuk siriisasi JSON.

10) Secara lalai, API Web menghantar respons HTTP dengan kod status berikut yang manakah untuk semua pengecualian yang tidak tertangkap?

500 - Ralat Pelayan Dalaman

11) Apa kelemahan terbesar dari "Jenis Pengembalian Lain" dalam API Web?

Kelemahan terbesar dari pendekatan ini ialah anda tidak dapat mengembalikan kod ralat seperti ralat 404 secara langsung.

12) Bagaimana anda membina HtmlResponseMessage?

Berikut adalah cara membina untuk melakukannya,

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) Apa itu Routing API Web?

Laluan adalah pemadanan corak seperti di MVC.

Semua laluan didaftarkan dalam Jadual Laluan.

Sebagai contoh:

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

14) Apa itu Sabun?

SOAP adalah format mesej XML yang digunakan dalam interaksi perkhidmatan web. Ini memungkinkan untuk mengirim pesan melalui HTTP atau JMS, tetapi protokol pengangkutan lain dapat digunakan. Ini juga merupakan protokol pemesejan berasaskan XML untuk pertukaran maklumat antara komputer.

15) Apakah faedah menggunakan REST dalam Web API?

REST digunakan untuk membuat pemindahan data lebih sedikit antara pelanggan dan pelayan yang menjadikannya ideal untuk menggunakannya dalam aplikasi mudah alih. API Web juga menyokong protokol HTTP. Oleh itu, ia memperkenalkan semula cara tradisional kata kerja HTTP untuk komunikasi.

16) Bagaimana kita boleh menggunakan API Web dengan Borang Web ASP.NET?

API Web boleh digunakan dengan Borang Web ASP.NET

Ia boleh dilakukan dalam tiga langkah mudah:

  1. Buat Pengawal API Web,
  2. Tambahkan jadual penghalaan ke kaedah Application_Start Global.sax
  3. Maka anda perlu membuat kaedah jQuery AJAX Call to Web API dan mendapatkan data.

17) Bagaimana anda dapat membatasi Akses ke Web API ke Kata Kerja HTTP Tertentu?

Pengaturcaraan atribut memainkan peranan penting. Sangat mudah untuk menyekat akses ke kaedah ASP.NET Web API untuk dipanggil menggunakan kaedah HTTP tertentu.

18) Bolehkah anda menggunakan API Web dengan Borang Web ASP.NET?

Ya, Anda boleh menggunakan API Web dengan borang web ASP.Net. Kerana ia digabungkan dengan kerangka kerja ASP.NET MVC. Walau bagaimanapun, ia boleh digunakan dengan Borang Web ASP.NET.

19) Bagaimana boleh memberikan nama alias untuk Tindakan API Web ASP.NET?

Kami dapat memberikan nama alias untuk tindakan Web API sama seperti ASP.NET MVC dengan menggunakan atribut "ActionName" seperti berikut:

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

20) Apakah maksud TestApi?

TestApi adalah pustaka utiliti API. Menggunakan pustaka penguji penguji ini dapat membuat alat pengujian dan ujian automatik untuk aplikasi .NET menggunakan struktur data dan algoritma.

21) Terangkan penapis pengecualian?

Ia akan dilaksanakan apabila pengecualian tidak ditangani dan dilemparkan dari alat kawalan. Sebab pengecualian boleh jadi apa sahaja. Penapis pengecualian akan melaksanakan antara muka "IExceptionFilter".

22) Bagaimana kita dapat mendaftarkan penapis pengecualian dari tindakan tersebut?

Kita boleh mendaftarkan penapis pengecualian dari tindakan menggunakan kod berikut:

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

23) Bagaimana anda dapat mengembalikan kaedah View dari ASP.NET Web API?

Tidak, kami tidak dapat mengembalikan pandangan dari Kaedah API Web ASP.NET. API Web membuat perkhidmatan HTTP yang memberikan data mentah. Walau bagaimanapun, ia juga mungkin berlaku dalam aplikasi ASP.NET MVC.

24) Bagaimana cara mendaftar penapis pengecualian di peringkat global?

Adalah mungkin untuk mendaftarkan penapis pengecualian secara global menggunakan kod berikut-

GlobalConfiguration.Configuration.Filters.Add (baru

MyTestCustomerStore.NotImplExceptionFilterAttribute ());

25) Terangkan apa itu REST dan RESTFUL?

REST mewakili Pemindahan Negeri Perwakilan; sepenuhnya aspek baru dalam menulis aplikasi web.

RESTFUL: Istilah yang ditulis dengan menerapkan konsep seni bina REST disebut perkhidmatan RESTful. Ia memfokuskan pada sumber sistem dan bagaimana keadaan sumber harus diangkut melalui protokol HTTP.

26) Beri saya satu contoh Routing API Web?

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) Bagaimana anda dapat menangani kesilapan dalam API Web?

Beberapa kelas tersedia di Web API untuk menangani kesilapan. Mereka adalah HttpError, Pengecualian Penapis, HttpResponseException, dan Mendaftar Pengecualian Penapis.

28) Apa Ciri Baru yang disertakan dengan ASP.NET Web API 2.0?

Ciri terbaru ASP.NET Web API framework v2.0 adalah seperti berikut:

  • Penghalaan Atribut
  • Perkongsian Sumber Merentas Asal
  • Pengesahan Luaran
  • Buka antara muka Web BERSIH
  • HttpActionResult
  • OData API Web

29) Bagaimana anda boleh menyekat kaedah akses kepada kata kerja HTTP tertentu dalam Web API?

Dengan bantuan Atribut (seperti kata kerja HTTP), adalah mungkin untuk melaksanakan sekatan akses dalam Web API.

Adalah mungkin untuk menentukan kata kerja HTTP sebagai atribut untuk menyekat akses. Contoh:

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

30) Bagaimana anda boleh melewati pelbagai jenis kompleks dalam API Web?

Dua kaedah untuk melepasi jenis kompleks dalam API Web -

Menggunakan array ArrayList dan Newtonsoft

31) Tuliskan kod untuk meneruskan ArrayList di Web 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) Namakan alat atau API untuk membangun atau menguji api web?

Alat ujian untuk perkhidmatan web untuk API REST merangkumi:

  1. Jersey API
  2. CFX
  3. Paksi
  4. Letakkan semula

33) Apa itu REST?

REST adalah gaya seni bina. Ia telah menetapkan garis panduan untuk membuat perkhidmatan yang dapat ditingkatkan. REST digunakan dengan protokol HTTP menggunakan kata kerja GET, PUT, POST dan DELETE.

34) Bagaimana menguji unit API Web?

Kami dapat melakukan ujian Unit menggunakan alat API Web seperti Fiddler.

Berikut adalah beberapa tetapan yang harus dilakukan jika anda menggunakan

Fiddler -Compose Tab -> Masukkan Permintaan Header -> Masukkan Request Body dan jalankan

35) Bagaimana kita dapat menyekat akses ke kaedah dengan kata kerja HTTP tertentu di Web API?

Pengaturcaraan atribut banyak digunakan untuk fungsi ini. API Web juga membenarkan menyekat akses kaedah panggilan dengan bantuan kata kerja HTTP tertentu. Juga mungkin untuk menentukan kata kerja HTTP sebagai kaedah atribut over.

36) Apa penggunaan DelegatingHandler?

DelegatingHandler digunakan dalam Web API untuk mewakili Pengendali Mesej sebelum melakukan penghalaan.

37) Bagaimana kita boleh mendaftarkan penapis pengecualian dari tindakan tersebut?

Kita boleh mendaftarkan penapis pengecualian dari tindakan menggunakan kod berikut

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

38) Beritahu saya coretan kod untuk menunjukkan bagaimana kita dapat mengembalikan 404 ralat dari HttpError?

Kod untuk mengembalikan ralat 404 dari HttpError

string message = string.Format (“TestCustomer id = {0} not found”, customerid);

Return Request.CreateErrorResponse (HttpStatusCode.NotFound, mesej);

39) Terangkan potongan kod untuk mendaftarkan penapis pengecualian dari pengawal?

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

40) Web API menyokong protokol mana?

Aplikasi Web menyokong protokol HTTP

41) Antara kerangka NET berikut, yang menyokong API Web?

API Web disokong oleh versi NET 4.0

42) Web API menggunakan perpustakaan yang mana untuk serialisasi JSON?

API Web menggunakan perpustakaan Json.NET untuk siriisasi JSON.

43) Secara lalai, API Web menghantar respons HTTP dengan kod status berikut yang manakah untuk semua pengecualian yang tidak tertangkap?

500 - Ralat Pelayan Dalaman

44) Terangkan kaedah untuk menangani ralat menggunakan HttpError dalam API Web?

Dalam WEB API HttpError digunakan untuk membuang maklumat kesalahan di badan tindak balas. Metode "CreateErrorResponse" juga dapat digunakan bersama dengan ini, yang merupakan metode perpanjangan yang ditentukan dalam "HttpRequestMessageExtension."

45) Bagaimana kita boleh mendaftarkan penapis pengecualian secara global?

Kami boleh mendaftarkan penapis pengecualian secara global menggunakan kod berikut:

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

46) Bagaimana menangani kesilapan dalam API Web?

Beberapa kelas tersedia di Web API untuk menangani kesilapan. Ia adalah HttpError, HttpResponseException, Exception Filters, Register Exception Filter.

47) Apakah faedah WebAPI berbanding WCF?

Perkhidmatan WCF menggunakan protokol SOAP sementara HTTP tidak pernah menggunakan protokol SOAP. Itulah sebabnya perkhidmatan WebAPI ringan kerana SOAP tidak digunakan. Ini juga mengurangkan data yang dipindahkan untuk meneruskan perkhidmatan. Lebih-lebih lagi, ia tidak memerlukan terlalu banyak konfigurasi. Oleh itu, klien dapat berinteraksi dengan perkhidmatan dengan menggunakan kata kerja HTTP.

48) Nyatakan perbezaan antara MVC dan WebAPI

Kerangka MVC digunakan untuk mengembangkan aplikasi yang memiliki Antarmuka Pengguna. Untuk itu, pandangan boleh digunakan untuk membina antara muka pengguna.

WebAPI digunakan untuk mengembangkan perkhidmatan HTTP. Aplikasi lain juga boleh dipanggil kaedah WebAPI untuk mengambil data tersebut.

49) Siapa yang boleh menggunakan WebAPI?

WebAPI dapat dimakan oleh mana-mana klien yang menyokong kata kerja HTTP seperti GET, PUT, DELETE, POST. Oleh kerana perkhidmatan WebAPI tidak memerlukan konfigurasi apa pun, perkhidmatan ini sangat mudah dimakan oleh mana-mana pelanggan. Infract, malah peranti mudah alih seperti peranti Mobile boleh menggunakan WebAPI dengan mudah yang tentunya merupakan kelebihan terbesar teknologi ini.

50) Bagaimana kita dapat memastikan bahawa API Web mengembalikan data JSON sahaja?

Untuk menjadikan API Web membuat siri objek yang kembali ke format JSON dan mengembalikan data JSON sahaja. Untuk itu anda harus menambahkan kod berikut dalam kelas WebApiConfig.cs di mana-mana Projek API Web MVC:

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