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

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

11
WebAPI หลายพารามิเตอร์ Put / Post
ฉันกำลังพยายามโพสต์หลายพารามิเตอร์ในตัวควบคุม WebAPI หนึ่งพารามิเตอร์มาจาก URL และอีกอันจากเนื้อหา นี่คือ URL: /offers/40D5E19D-0CD5-4FBD-92F8-43FDBB475333/prices/ นี่คือรหัสควบคุมของฉัน: public HttpResponseMessage Put(Guid offerId, OfferPriceParameters offerPriceParameters) { //What!? var ser = new DataContractJsonSerializer(typeof(OfferPriceParameters)); HttpContext.Current.Request.InputStream.Position = 0; var what = ser.ReadObject(HttpContext.Current.Request.InputStream); return new HttpResponseMessage(HttpStatusCode.Created); } เนื้อหาของร่างกายอยู่ใน JSON: { "Associations": { "list": [ { "FromEntityId":"276774bb-9bd9-4bbd-a7e7-6ed3d69f196f", "ToEntityId":"ed0d2616-f707-446b-9e40-b77b94fb7d2b", "Types": { "list":[ { "BillingCommitment":5, "BillingCycle":5, "Prices": …

13
บุรุษไปรษณีย์: ส่งวัตถุ JSON ที่ซ้อนกัน
ฉันใช้ ASP.NET Web API: http://xyzdomain.com:16845/api/returns/returns ฉันจะส่งคำขอ POST ไปยังปลายทางโดยใช้ส่วนขยาย Postman Chrome ได้อย่างไรItemsคอลเลกชันที่ได้รับ: [ { "Items": [ { "sku": "9257", "Price": "100", "Quantity": "500", "DiscountPercent": "1", "backordered": "2" } ], "order_id": "F429768865001", "status_code": "Shelf", "Exception": "no error" } ]

11
วิธีเพิ่ม / อัพเดตเอนทิตีชายด์เมื่ออัพเดตเอนทิตีพาเรนต์ใน EF
เอนทิตีทั้งสองนี้มีความสัมพันธ์แบบหนึ่งต่อหลายคน (สร้างโดยรหัส API แรกได้อย่างคล่องแคล่ว) public class Parent { public Parent() { this.Children = new List<Child>(); } public int Id { get; set; } public virtual ICollection<Child> Children { get; set; } } public class Child { public int Id { get; set; } public int ParentId { get; set; } …

3
การตรวจสอบผู้ใช้ใน ASP.NET Web API
หัวข้อนี้ทำให้ฉันสับสนอย่างเหลือเชื่อ ฉันเป็นมือใหม่ในแอพ HTTP แต่ต้องพัฒนาไคลเอนต์ iPhone ที่ใช้ข้อมูล JSON จากที่อื่น ฉันเลือก Web API จาก MS เพราะมันดูง่ายพอ แต่เมื่อพูดถึงการพิสูจน์ตัวตนผู้ใช้สิ่งต่างๆก็ค่อนข้างน่าผิดหวัง ฉันประหลาดใจที่ฉันไม่สามารถหาตัวอย่างที่ชัดเจนเกี่ยวกับวิธีการรับรองความถูกต้องของผู้ใช้จากหน้าจอเข้าสู่ระบบจนถึงการใช้Authorizeแอตทริบิวต์เหนือApiControllerวิธีการของฉันหลังจากใช้ Google เป็นเวลาหลายชั่วโมง นี่ไม่ใช่คำถาม แต่เป็นตัวอย่างของวิธีการทำเช่นนี้อย่างแน่นอน ฉันได้ดูหน้าต่อไปนี้: ทำให้ ASP.NET Web API ของคุณปลอดภัย การพิสูจน์ตัวตนพื้นฐานด้วย ASP.NET Web API แม้ว่าสิ่งเหล่านี้จะอธิบายวิธีจัดการกับคำขอที่ไม่ได้รับอนุญาต แต่สิ่งเหล่านี้ก็ไม่ได้แสดงให้เห็นอย่างชัดเจนว่าเป็นLoginControllerสิ่งที่ต้องการขอข้อมูลประจำตัวผู้ใช้และตรวจสอบความถูกต้อง ทุกคนยินดีที่จะเขียนตัวอย่างง่ายๆที่ดีหรือชี้ฉันในทิศทางที่ถูกต้องโปรด? ขอบคุณ

9
วิธีการแยกค่าส่วนหัวที่กำหนดเองในตัวจัดการข้อความ Web API?
ขณะนี้ฉันมีตัวจัดการข้อความในบริการ Web API ของฉันที่แทนที่ 'SendAsync' ดังต่อไปนี้: protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { //implementation } MyCustomIDภายในรหัสนี้ฉันจำเป็นต้องตรวจสอบที่กำหนดเองมูลค่าเพิ่มส่วนหัวคำขอชื่อ ปัญหาคือเมื่อฉันทำต่อไปนี้: if (request.Headers.Contains("MyCustomID")) //OK var id = request.Headers["MyCustomID"]; //build error - not OK ... ฉันได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้: ไม่สามารถใช้การจัดทำดัชนีด้วย [] กับนิพจน์ประเภท 'System.Net.Http.Headers.HttpRequestHeaders' ฉันจะเข้าถึงส่วนหัวคำขอที่กำหนดเองเดียวผ่านอินสแตนซ์HttpRequestMessage( เอกสาร MSDN ) ที่ส่งผ่านไปยังวิธีการแทนที่ได้อย่างไร

11
GlobalConfiguration.Configure () ไม่มีอยู่หลังจากการโยกย้าย Web API 2 และ. NET 4.5.1
ฉันเพิ่งเริ่มทำตามคำแนะนำนี้เพื่อโยกย้ายโครงการของฉันไปยัง. NET 4.5.1 และ Web Api 2 สิ่งแรกที่นักพัฒนา MS Anderson ขอให้คุณทำคือเปลี่ยน: WebApiConfig.Register(GlobalConfiguration.Configuration); ถึง GlobalConfiguration.Configure(WebApiConfig.Register); ในไฟล์ global.asax แต่สิ่งนี้ทำให้ฉันมีข้อผิดพลาดเมื่อฉันพยายามสร้าง: ข้อผิดพลาด 1 'System.Web.Http.GlobalConfiguration' ไม่มีคำจำกัดความสำหรับ 'กำหนดค่า' ปัจจุบันโครงการของฉันใช้ MVC 5 และ Web Api 2 และ. NET 4.5.1 แต่ฉันคิดว่า System.Web.Http ยังคงคิดว่าเป็นรุ่น. NEt 4.0 ฉันจะแก้ไขสิ่งนี้ได้อย่างไร ขอบคุณ. แก้ไข: นี่คือการผูกการชุมนุมของฉัน: <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31BF3856AD364E35" culture="neutral"/> <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" …

5
การทดสอบหน่วย ASP.NET WebApi ด้วย Request.CreateResponse
ฉันกำลังพยายามเขียนการทดสอบหน่วยสำหรับ ApiController ของฉันและประสบปัญหาบางอย่าง มีวิธีการขยายที่ดีที่เรียกว่า Request.CreateResponse ที่ช่วยได้มากในการสร้างการตอบสนอง public HttpResponseMessage Post(Product product) { var createdProduct = repo.Add(product); return this.Request.CreateResponse(HttpStatusCode.Created, createdProduct); } มีวิธีใดในการเยาะเย้ย CreateResponse โดยไม่ใช้ mocks บางส่วนหรือใช้โดยตรงของ "HttpResponseMessage ใหม่ (... )"

1
วิธีเพิ่ม Web API ในโครงการ ASP.NET MVC (5) Web Application ที่มีอยู่
สมมติว่าคุณลืมทำเครื่องหมายที่ช่องทำเครื่องหมาย Web API (เพิ่มในโครงการ) เมื่อสร้างโครงการ MVC (5) ใหม่คุณต้องทำอะไรเพิ่ม Web API เพื่อให้ทำงานได้ มีคำถามเกี่ยวกับการย้ายข้อมูลจำนวนมาก แต่ดูเหมือนว่าจะไม่มีขั้นตอนที่สมบูรณ์และทันสมัยสำหรับการเพิ่ม Web API ในโครงการ MVC 5 และดูเหมือนว่าจะเปลี่ยนไปจากคำตอบเดิมบางส่วน เพิ่ม Web API ใน MVC 4 การเพิ่ม GlobalConfiguration.Configure (WebApiConfig.Register) MVC 4

4
จะเขียนไฟล์ JSON ใน C # ได้อย่างไร?
ฉันต้องเขียนข้อมูลต่อไปนี้ลงในไฟล์ข้อความโดยใช้รูปแบบ JSON ใน C # วงเล็บมีความสำคัญสำหรับการเป็นรูปแบบ JSON ที่ถูกต้อง [ { "Id": 1, "SSN": 123, "Message": "whatever" }, { "Id": 2, "SSN": 125, "Message": "whatever" } ] นี่คือคลาสโมเดลของฉัน: public class data { public int Id { get; set; } public int SSN { get; set; } public string Message { get; …

19
ASP.NET Web API - ไม่สามารถใช้คำกริยา PUT & DELETE - IIS 8
ฉันเพิ่งอัพเกรดจาก Visual Studio 2010 เป็น Visual Studio 2012 RC โปรแกรมติดตั้งยังติดตั้ง IIS 8 Express ซึ่งขณะนี้ Visual Studio ใช้เป็นเว็บเซิร์ฟเวอร์เริ่มต้น IIS 8 กำลังบล็อกการร้องขอ WEB API ของฉันที่ใช้คำกริยา PUT และ DELETE IIS ส่งกลับข้อผิดพลาด The requested resource does not support http method 'PUT'405 ฉันรู้ว่าผู้คนมีปัญหากับเรื่องนี้ในอดีตและมีข้อความหลายข้อความเกี่ยวกับเรื่อง Stack Overflow ด้วย IIS 7 Express วิธีแก้ไขคือถอนการติดตั้ง WebDav น่าเสียดายที่ฉันไม่เห็นวิธีการทำเช่นนั้นกับ IIS 8 ฉันได้ลองแก้ไขส่วน …

10
ASP.NET WebApi เทียบกับ MVC? [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ด้วยตัวควบคุม ASP.NET MVC คุณสามารถเปิดเผยข้อมูลของคุณในรูปแบบที่แตกต่างกัน AspNetWebAPI ได้รับการออกแบบมาอย่างชัดเจนสำหรับการสร้าง API แต่ฉันสามารถทำได้อย่างง่ายดายด้วยตัวควบคุม MVC ไม่ชัดเจนสำหรับฉันในกรณีที่มันจะดีกว่าตัวควบคุม MVC แบบดั้งเดิม ฉันสนใจในสถานการณ์ที่เห็นได้ชัดว่าประโยชน์ของ WebApi และมันก็คุ้มค่าที่จะเพิ่มเลเยอร์ความซับซ้อนอื่นให้กับแอปพลิเคชันของฉัน คำถาม:อะไรคือข้อดีและ / หรือข้อเสียของการใช้ asp.net WebApi เกี่ยวกับ MVC?

9
วิธีตั้งค่าการดาวน์โหลดชื่อไฟล์ใน ASP.NET Web API
ในคลาส ApiController ของฉันฉันมีวิธีการดังต่อไปนี้เพื่อดาวน์โหลดไฟล์ที่สร้างโดยเซิร์ฟเวอร์ public HttpResponseMessage Get(int id) { try { string dir = HttpContext.Current.Server.MapPath("~"); //location of the template file Stream file = new MemoryStream(); Stream result = _service.GetMyForm(id, dir, file); if (result == null) { return Request.CreateResponse(HttpStatusCode.NotFound); } result.Position = 0; HttpResponseMessage response = new HttpResponseMessage(); response.StatusCode = HttpStatusCode.OK; response.Content …

5
ข้อผิดพลาด DefaultInlineConstraintResolver ใน WebAPI 2
ฉันใช้ Web API 2 และฉันได้รับข้อผิดพลาดต่อไปนี้เมื่อฉันส่ง POST ไปยังวิธี API ของฉันโดยใช้ IIS 7.5 บนกล่องภายในเครื่องของฉัน The inline constraint resolver of type 'DefaultInlineConstraintResolver' was unable to resolve the following inline constraint: 'string'. Line 21: GlobalConfiguration.Configuration.EnsureInitialized(); API ของฉันไม่ทำงานโดยใช้ IIS อย่างไรก็ตามฉันสามารถรันโครงการ API ของฉันใน Visual Studio โดยใช้ IIS Express และทำการ POST ไปยัง API การลงชื่อเข้าใช้ของฉันได้สำเร็จ แต่เมื่อฉันลองและขอ GET ไปยังการเรียก …
140 c#  asp.net  api  iis  asp.net-web-api 


3
ใครช่วยอธิบาย CreatedAtRoute () ให้ฉันฟังได้ไหม
จากเทมเพลตสำหรับ Web API 2 วิธีการโพสต์จะเป็นเช่นนี้เสมอ: [ResponseType(typeof(MyDTO))] public IHttpActionResult PostmyObject(MyDTO myObject) { ... return CreatedAtRoute("DefaultApi", new { id = myObject.Id }, myObject); } ฉันไม่เข้าใจCreatedAtRoute()วิธีนี้ ใครสามารถอธิบายCreatedAtRoute()วิธีการให้ฉัน?

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