คำถามติดแท็ก asp.net-web-api

ASP.NET Web API เป็นเฟรมเวิร์กสำหรับสร้างบริการ HTTP สำหรับลูกค้าเช่นเบราว์เซอร์และอุปกรณ์มือถือ มันขึ้นอยู่กับ Microsoft .NET Framework และเป็นตัวเลือกที่เหมาะสำหรับการสร้างบริการ RESTful

29
ฉันจะรับ ASP.NET Web API เพื่อส่งคืน JSON แทนที่จะเป็น XML โดยใช้ Chrome ได้อย่างไร
คำตอบของคำถามนี้เป็นความพยายามของชุมชน แก้ไขคำตอบที่มีอยู่เพื่อปรับปรุงโพสต์นี้ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ การใช้ASP.NET Web API ที่ใหม่กว่าในChromeฉันเห็น XML - ฉันจะเปลี่ยนเป็นขอJSONเพื่อให้สามารถดูได้ในเบราว์เซอร์ได้อย่างไร ฉันเชื่อว่ามันเป็นเพียงส่วนหนึ่งของส่วนหัวของคำขอฉันจะแก้ไขให้ถูกต้องหรือไม่

19
IMDB ให้ API หรือไม่ [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน3 ปีที่ผ่านมา ฉันเพิ่งพบจัดโปรแกรมภาพยนตร์ซึ่งจะดึงข้อมูลจากฐานข้อมูลของไอเอ็ม ไม่IMDBให้ API สำหรับการนี้หรือบุคคลที่สามใด ๆ APIs ใช้ได้?

4
วิธีปฏิบัติที่ดีที่สุดในการโทร ConfigureAwait สำหรับรหัสฝั่งเซิร์ฟเวอร์ทั้งหมด
เมื่อคุณมีรหัสฝั่งเซิร์ฟเวอร์ (เช่นบางส่วนApiController) และฟังก์ชั่นของคุณจะไม่ตรงกัน - เพื่อให้พวกเขากลับมาTask<SomeObject>- มันถือว่าเป็นวิธีที่ดีที่สุดว่าเวลาที่คุณรอคอยฟังก์ชั่นที่คุณโทรหาConfigureAwait(false)? ฉันได้อ่านว่ามันมีประสิทธิภาพมากกว่าเพราะไม่ต้องสลับบริบทของเธรดกลับไปเป็นบริบทของเธรดดั้งเดิม อย่างไรก็ตามด้วย ASP.NET Web Api หากคำขอของคุณเข้ามาในเธรดเดียวและคุณรอฟังก์ชั่นและการโทรConfigureAwait(false)ที่อาจทำให้คุณอยู่ในเธรดอื่นเมื่อคุณส่งคืนผลลัพธ์สุดท้ายของApiControllerฟังก์ชัน ฉันได้พิมพ์ตัวอย่างของสิ่งที่ฉันพูดถึงด้านล่าง: public class CustomerController : ApiController { public async Task<Customer> Get(int id) { // you are on a particular thread here var customer = await SomeAsyncFunctionThatGetsCustomer(id).ConfigureAwait(false); // now you are on a different thread! will that cause problems? …

11
WCF กับ ASP.NET Web API [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา ฉันใช้เวลาสองสามเดือนเพื่อพยายามเข้าใจแนวคิดเบื้องหลัง WCF และเมื่อเร็ว ๆ นี้ฉันได้พัฒนาแอปพลิเคชันบริการ WCF แรกของฉัน ฉันพยายามอย่างหนักที่จะเข้าใจการตั้งค่าทั้งหมดในไฟล์ปรับแต่ง ฉันไม่มั่นใจเกี่ยวกับสภาพแวดล้อม แต่ดูเหมือนว่าคุณสามารถทำสิ่งที่น่าอัศจรรย์กับมัน วันอื่น ๆ ที่ผมเคยพบว่าไมโครซอฟท์ออกมาพร้อมกับสิ่งใหม่ที่เรียกว่าเว็บ ASP.NET API สำหรับสิ่งที่ฉันสามารถอ่านได้มันเป็นกรอบงาน RESTfulใช้งานง่ายและนำไปปฏิบัติ ตอนนี้ฉันกำลังพยายามหาว่าอะไรคือความแตกต่างที่สำคัญระหว่าง 2 เฟรมเวิร์กและถ้าฉันควรลองและแปลงแอพพลิเคชั่นบริการ WCF เดิมของฉันด้วย API ใหม่ มีใครได้โปรดช่วยฉันเข้าใจความแตกต่างและการใช้งานของแต่ละคน
484 c#  wcf  asp.net-web-api 

16
ผ่านอาร์เรย์ของจำนวนเต็มไปยัง ASP.NET Web API หรือไม่
ฉันมีบริการ REST ASP.NET Web API (รุ่น 4) ที่ฉันต้องผ่านอาร์เรย์ของจำนวนเต็ม นี่คือวิธีการกระทำของฉัน: public IEnumerable<Category> GetCategories(int[] categoryIds){ // code to retrieve categories from database } และนี่คือ URL ที่ฉันได้ลอง: /Categories?categoryids=1,2,3,4

6
วิธีรักษาความปลอดภัย ASP.NET Web API [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา ฉันต้องการสร้างบริการเว็บสงบโดยใช้ ASP.NET Web API ที่นักพัฒนาบุคคลที่สามจะใช้ในการเข้าถึงข้อมูลแอปพลิเคชันของฉัน ฉันได้อ่านค่อนข้างมากเกี่ยวกับOAuthและดูเหมือนจะเป็นมาตรฐาน แต่การหาตัวอย่างที่ดีพร้อมเอกสารอธิบายว่ามันทำงานอย่างไร (และนั่นใช้งานได้จริง!) ดูเหมือนจะยากอย่างไม่น่าเชื่อ มีตัวอย่างที่สร้างและใช้งานจริงและแสดงวิธีการใช้งานจริงหรือไม่? ฉันได้ดาวน์โหลดตัวอย่างมากมาย: DotNetOAuth - เอกสารเป็นสิ่งที่สิ้นหวังจากมุมมองของมือใหม่ Thinktecture - ไม่สามารถสร้างได้ ฉันยังได้ดูบล็อกที่แนะนำชุดรูปแบบโทเค็นที่เรียบง่าย (เช่นนี้ ) - นี่ดูเหมือนจะเป็นการประดิษฐ์วงล้อขึ้นใหม่ แต่มันมีข้อดีของการเป็นแนวคิดที่ค่อนข้างง่าย ดูเหมือนว่ามีคำถามมากมายเช่นนี้ใน SO แต่ไม่มีคำตอบที่ดี ทุกคนกำลังทำอะไรในพื้นที่นี้

11
วิธีปฏิบัติที่ดีที่สุดในการส่งคืนข้อผิดพลาดใน ASP.NET Web API
ฉันมีความกังวลเกี่ยวกับวิธีที่เราส่งคืนข้อผิดพลาดไปยังลูกค้า เราจะส่งคืนข้อผิดพลาดทันทีโดยการขว้างHttpResponseExceptionเมื่อเราพบข้อผิดพลาด public void Post(Customer customer) { if (string.IsNullOrEmpty(customer.Name)) { throw new HttpResponseException("Customer Name cannot be empty", HttpStatusCode.BadRequest) } if (customer.Accounts.Count == 0) { throw new HttpResponseException("Customer does not have any account", HttpStatusCode.BadRequest) } } หรือเราสะสมข้อผิดพลาดทั้งหมดจากนั้นส่งกลับไปที่ลูกค้า: public void Post(Customer customer) { List<string> errors = new List<string>(); if (string.IsNullOrEmpty(customer.Name)) { errors.Add("Customer …
384 c#  rest  asp.net-web-api 

9
จะเพิ่ม Web API ในโครงการ ASP.NET MVC 4 Web Application ที่มีอยู่ได้อย่างไร
ฉันต้องการเพิ่มASP.NET Web APIในโครงการ ASP.NET MVC 4 Web Application ที่พัฒนาใน Visual Studio 2012 ฉันต้องดำเนินการขั้นตอนใดเพื่อเพิ่ม Web API ที่ใช้งานได้ให้กับโครงการ ฉันรู้ว่าฉันต้องการคอนโทรลเลอร์ที่มาจาก ApiController แต่นั่นคือทั้งหมดที่ฉันรู้ แจ้งให้เราทราบหากฉันต้องการให้รายละเอียดเพิ่มเติม

6
ความแตกต่างระหว่าง ApiController และคอนโทรลเลอร์ใน ASP.NET MVC
ฉันได้รับการเล่นรอบกับ ASP.NET MVC 4 รุ่นเบต้าและผมเห็นสองประเภทของการควบคุมขณะนี้: และApiControllerController ฉันสับสนเล็กน้อยว่าสถานการณ์ใดที่ฉันสามารถเลือกคอนโทรลเลอร์ได้ ตัวอย่างเช่น: ถ้าฉันต้องการส่งคืนมุมมองฉันต้องใช้ApiControllerหรือControllerไม่? ฉันทราบว่า WCF Web API ได้รวมเข้ากับ MVC แล้ว ตั้งแต่ตอนนี้เราสามารถใช้ตัวควบคุมทั้งสองได้ใครสักคนโปรดชี้ไปที่สถานการณ์ที่จะไปสำหรับตัวควบคุมที่เกี่ยวข้อง

8
เหตุใดฉันจึงควรใช้ IHttpActionResult แทน HttpResponseMessage
ฉันได้รับการพัฒนากับ WebAPI และได้ย้ายไป WebApi2 ที่ไมโครซอฟท์ได้แนะนำใหม่อินเตอร์เฟซที่ดูเหมือนว่าจะแนะนำให้นำมาใช้มากกว่ากลับIHttpActionResult HttpResponseMessageฉันสับสนกับข้อดีของอินเทอร์เฟซใหม่นี้ มันดูเหมือนว่าส่วนใหญ่เพียงแค่ให้เล็กน้อยHttpResponseMessageวิธีที่ง่ายในการสร้าง ฉันจะโต้แย้งว่านี่เป็น "สิ่งที่เป็นนามธรรมเพื่อประโยชน์ของการเป็นนามธรรม" ฉันพลาดอะไรไปรึเปล่า? อะไรคือข้อได้เปรียบของโลกแห่งความเป็นจริงที่ฉันได้รับจากการใช้อินเทอร์เฟซใหม่นอกเหนือจากการบันทึกบรรทัดโค้ด วิธีเก่า (WebApi): public HttpResponseMessage Delete(int id) { var status = _Repository.DeleteCustomer(id); if (status) { return new HttpResponseMessage(HttpStatusCode.OK); } else { throw new HttpResponseException(HttpStatusCode.NotFound); } } วิธีใหม่ (WebApi2): public IHttpActionResult Delete(int id) { var status = _Repository.DeleteCustomer(id); if (status) { …

7
การส่งคืนไฟล์ไบนารีจากคอนโทรลเลอร์ใน ASP.NET Web API
ฉันกำลังทำงานกับบริการเว็บโดยใช้ WebAPI ใหม่ของ ASP.NET MVC ที่จะให้บริการไฟล์ไบนารีส่วนใหญ่.cabและ.exeไฟล์ ดูเหมือนว่าวิธีการควบคุมต่อไปนี้จะใช้งานได้ซึ่งหมายความว่าจะคืนค่าไฟล์ แต่เป็นการตั้งค่าประเภทเนื้อหาเป็นapplication/json: public HttpResponseMessage<Stream> Post(string version, string environment, string filetype) { var path = @"C:\Temp\test.exe"; var stream = new FileStream(path, FileMode.Open); return new HttpResponseMessage<Stream>(stream, new MediaTypeHeaderValue("application/octet-stream")); } มีวิธีที่ดีกว่าในการทำเช่นนี้?

9
จะส่งข้อมูล json POST ไปยังวิธี Web API เป็นวัตถุได้อย่างไร
แอปพลิเคชัน ASP.NET MVC4 Web API กำหนดวิธีการโพสต์เพื่อบันทึกลูกค้า ลูกค้าผ่านรูปแบบ json ในเนื้อความคำขอ POST พารามิเตอร์ลูกค้าในวิธีการโพสต์มีค่า Null สำหรับคุณสมบัติ จะแก้ไขได้อย่างไรเพื่อที่ข้อมูลที่โพสต์จะถูกส่งเป็นวัตถุลูกค้า ถ้าเป็นไปได้ Content-Type: application / x-www-form-urlencoded ควรใช้เพราะฉันไม่รู้วิธีเปลี่ยนในวิธี javascript ซึ่งโพสต์แบบฟอร์ม ควบคุม: public class CustomersController : ApiController { public object Post([FromBody] Customer customer) { return Request.CreateResponse(HttpStatusCode.OK, new { customer = customer }); } } } public class Customer { …

5
ServiceStack กับ ASP.Net Web API [ปิด]
ต้องการปรับปรุงโพสต์นี้หรือไม่? ให้คำตอบโดยละเอียดสำหรับคำถามนี้รวมถึงการอ้างอิงและคำอธิบายว่าทำไมคำตอบของคุณถึงถูกต้อง คำตอบที่ไม่มีรายละเอียดเพียงพออาจแก้ไขหรือลบออกได้ ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน10 เดือนที่ผ่านมา ปรับปรุงคำถามนี้ ฉันต้องการเขียน API สไตล์ REST ใหม่และดู ServiceStack และค่อนข้างชอบ อย่างไรก็ตามฉันได้เห็นแล้วว่า Microsoft ได้เปิดตัวโครงการ ASP.Net Web API ซึ่งเป็นส่วนหนึ่งของ MVC 4 เบต้าใหม่ มีใครดูที่โครงการ Web API ใหม่หรือไม่ คุณสามารถให้ข้อดี / ข้อเสียของแต่ละระบบได้หรือไม่?

6
โพสต์ JsonObject ด้วย HttpClient จาก Web API
ฉันกำลังพยายามโพสต์การJsonObjectใช้HttpClientจาก Web API ฉันค่อนข้างไม่แน่ใจว่าจะทำอย่างไรและไม่สามารถหาโค้ดได้มากนัก นี่คือสิ่งที่ฉันมี: var myObject = (dynamic)new JsonObject(); myObject.Data = "some data"; myObject.Data2 = "some more data"; HttpClient httpClient = new HttpClient("myurl"); httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); HttpResponseMessage response = httpClient.Post("", ???); ฉันคิดว่าฉันต้องทำให้ตัวเองJsonObjectเป็นStreamContentแต่ฉันก็ถูกวางสายในขั้นตอนนั้น

6
HttpContent.ReadAsAsync อยู่ที่ไหน
ฉันเห็นตัวอย่างมากมายบนเว็บโดยใช้HttpClientออบเจ็กต์ใหม่(เป็นส่วนหนึ่งของ Web API ใหม่) ว่าควรมีHttpContent.ReadAsAsync<T>วิธีการ อย่างไรก็ตามMSDNไม่ได้กล่าวถึงวิธีการนี้และ IntelliSense ไม่พบมัน มันไปไหนและฉันจะแก้ไขได้อย่างไร

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.