คำถามติดแท็ก rest

REST (Representational State Transfer) เป็นรูปแบบของสถาปัตยกรรมซอฟต์แวร์สำหรับระบบไฮเปอร์มีเดียแบบกระจายเช่นเวิลด์ไวด์เว็บ มันได้รับความนิยมเพิ่มขึ้นเมื่อเทียบกับสถาปัตยกรรม RPC เช่น SOAP เนื่องจากการยกเลิกการเชื่อมต่อภายในไคลเอ็นต์จากเซิร์ฟเวอร์ที่มาจากการมีอินเตอร์เฟสที่สม่ำเสมอระหว่างระบบที่แตกต่างกัน

30
วางกับ POST ใน REST
ตาม HTTP / 1.1 Spec: POSTวิธีการที่ใช้ในการขอให้เซิร์ฟเวอร์ต้นทางยอมรับกิจการที่แนบมาในคำขอเป็นผู้ใต้บังคับบัญชาใหม่ของทรัพยากรที่ระบุโดยRequest-URIในRequest-Line ในคำอื่น ๆPOSTที่ใช้ในการสร้าง คำขอวิธีการที่นิติบุคคลที่แนบมาจะถูกเก็บไว้ภายใต้การจัดจำหน่ายPUT Request-URIหากการRequest-URIอ้างอิงไปยังทรัพยากรที่มีอยู่แล้วนิติบุคคลที่ปิดไว้ควรได้รับการพิจารณาว่าเป็นรุ่นที่ได้รับการแก้ไขของเนื้อหาที่อยู่ในเซิร์ฟเวอร์ต้นทาง หากRequest-URIไม่ได้ชี้ไปที่ทรัพยากรที่มีอยู่และ URI นั้นสามารถกำหนดเป็นทรัพยากรใหม่ได้โดยตัวแทนผู้ใช้ที่ร้องขอเซิร์ฟเวอร์ต้นทางสามารถสร้างทรัพยากรด้วย URI นั้น " นั่นคือPUTจะใช้ในการสร้างหรือเปลี่ยน ดังนั้นควรใช้อันไหนในการสร้างทรัพยากร หรือต้องการสนับสนุนทั้งสองอย่าง?
5372 http  rest  post  put 


24
ฉันจะโพสต์ข้อมูล JSON ด้วย cURL ได้อย่างไร
ฉันใช้ Ubuntu และติดตั้งcURLกับมัน ฉันต้องการทดสอบแอปพลิเคชัน Spring REST ด้วย cURL ฉันเขียนรหัส POST ของฉันที่ฝั่ง Java อย่างไรก็ตามฉันต้องการทดสอบด้วย cURL ฉันพยายามโพสต์ข้อมูล JSON ข้อมูลตัวอย่างเป็นดังนี้: {"value":"30","type":"Tip 3","targetModule":"Target 3","configurationGroup":null,"name":"Configuration Deneme 3","description":null,"identity":"Configuration Deneme 3","version":0,"systemId":3,"active":true} ฉันใช้คำสั่งนี้: curl -i \ -H "Accept: application/json" \ -H "X-HTTP-Method-Override: PUT" \ -X POST -d "value":"30","type":"Tip 3","targetModule":"Target 3","configurationGroup":null,"name":"Configuration Deneme 3","description":null,"identity":"Configuration Deneme 3","version":0,"systemId":3,"active":true \ http://localhost:8080/xx/xxx/xxxx มันกลับข้อผิดพลาดนี้: HTTP/1.1 …

20
HTTP GET พร้อมเนื้อหาคำขอ
ฉันกำลังพัฒนา webservice RESTful ใหม่สำหรับแอปพลิเคชันของเรา เมื่อทำการ GET กับบางเอนทิตีลูกค้าสามารถร้องขอเนื้อหาของเอนทิตี หากพวกเขาต้องการเพิ่มพารามิเตอร์บางอย่าง (ตัวอย่างเช่นการเรียงลำดับรายการ) พวกเขาสามารถเพิ่มพารามิเตอร์เหล่านี้ในสตริงแบบสอบถาม อีกทางหนึ่งฉันต้องการให้ผู้คนสามารถระบุพารามิเตอร์เหล่านี้ในเนื้อหาคำขอ HTTP / 1.1ดูเหมือนจะไม่ได้รับการอนุญาตนี้อย่างชัดเจน สิ่งนี้จะช่วยให้พวกเขาระบุข้อมูลเพิ่มเติมอาจทำให้ง่ายขึ้นในการระบุคำขอ XML ที่ซับซ้อน คำถามของฉัน: นี่เป็นความคิดที่ดีหรือไม่? ไคลเอนต์ HTTP จะมีปัญหากับการใช้เนื้อความคำขอภายในคำขอ GET หรือไม่ http://tools.ietf.org/html/rfc2616
2110 rest  http  http-get 

10
สบู่กับส่วนที่เหลือ (ความแตกต่าง)
ฉันได้อ่านบทความเกี่ยวกับความแตกต่างระหว่าง SOAP และ REST เป็นโปรโตคอลการสื่อสารผ่านเว็บเซอร์วิส แต่ฉันคิดว่าข้อดีที่สุดสำหรับ REST ผ่าน SOAP คือ: REST เป็นแบบไดนามิกมากขึ้นไม่จำเป็นต้องสร้างและอัปเดต UDDI (Universal Description, Discovery, and Integration) REST ไม่ได้ถูก จำกัด รูปแบบ XML เท่านั้น บริการเว็บสงบสามารถส่งข้อความธรรมดา / JSON / XML แต่ SOAP นั้นได้มาตรฐานมากกว่า (เช่นความปลอดภัย) ดังนั้นฉันถูกต้องในจุดเหล่านี้หรือไม่

7
แนวทางปฏิบัติที่ดีที่สุดสำหรับการกำหนดเวอร์ชัน API หรือไม่ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ปิดให้บริการใน6 ปีที่ผ่านมา ล็อคแล้ว คำถามและคำตอบนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ มีวิธีการหรือวิธีปฏิบัติที่ดีที่สุดสำหรับการวางเวอร์ชัน REST API สำหรับบริการบนเว็บหรือไม่? ฉันได้พบว่าAWS ไม่เวอร์ชันโดย URL ของปลายทางที่ นี่เป็นวิธีเดียวหรือมีวิธีอื่นในการบรรลุเป้าหมายเดียวกันหรือไม่? หากมีหลายวิธีอะไรคือข้อดีของแต่ละวิธี?
877 rest  versioning 

14
รหัสตอบกลับ HTTP สำหรับ POST เมื่อทรัพยากรมีอยู่แล้ว
ฉันกำลังสร้างเซิร์ฟเวอร์ที่อนุญาตให้ลูกค้าจัดเก็บวัตถุ วัตถุเหล่านั้นถูกสร้างอย่างสมบูรณ์ที่ฝั่งไคลเอ็นต์พร้อมด้วย ID วัตถุที่ถาวรตลอดอายุการใช้งานของวัตถุ ฉันได้กำหนด API เพื่อให้ลูกค้าสามารถสร้างหรือปรับเปลี่ยนวัตถุโดยใช้ PUT: PUT /objects/{id} HTTP/1.1 ... {json representation of the object} {id} เป็น ID อ็อบเจ็กต์ดังนั้นจึงเป็นส่วนหนึ่งของ Request-URI ตอนนี้ฉันกำลังพิจารณาให้ลูกค้าสร้างวัตถุโดยใช้ POST: POST /objects/ HTTP/1.1 ... {json representation of the object, including ID} เนื่องจาก POST มีความหมายว่าเป็นการดำเนินการ "ผนวก" ฉันไม่แน่ใจว่าจะทำอย่างไรในกรณีที่วัตถุมีอยู่แล้ว ฉันควรปฏิบัติต่อคำขอเป็นการร้องขอแก้ไขหรือฉันควรส่งคืนรหัสข้อผิดพลาด (อัน) หรือไม่

18
วิธีปฏิบัติที่ดีที่สุดสำหรับการรักษาความปลอดภัย REST API / บริการบนเว็บ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา เมื่อออกแบบ REST API หรือบริการจะมีแนวทางปฏิบัติที่ดีที่สุดสำหรับการจัดการด้านความปลอดภัย (การรับรองความถูกต้องการอนุญาตการจัดการข้อมูลผู้ใช้)? เมื่อสร้าง SOAP API คุณจะต้องมี WS-Security เป็นแนวทางและมีเอกสารมากมายในหัวข้อ ฉันพบข้อมูลน้อยลงเกี่ยวกับการรักษาจุดสิ้นสุด REST ในขณะที่ฉันเข้าใจว่า REST โดยเจตนาไม่มีข้อกำหนดเหมือนกับ WS- * ฉันหวังว่าวิธีปฏิบัติที่ดีที่สุดหรือรูปแบบที่แนะนำได้เกิดขึ้นแล้ว การอภิปรายหรือลิงค์ไปยังเอกสารที่เกี่ยวข้องจะได้รับการชื่นชมอย่างมาก หากเป็นเรื่องสำคัญเราจะใช้ WCF กับข้อความ POX / JSON ต่อเนื่องสำหรับ REST API ของเรา / บริการที่สร้างโดยใช้ v3.5 ของ. NET Framework

8
รหัสสถานะ REST HTTP สำหรับการตรวจสอบที่ล้มเหลวหรือซ้ำกันไม่ถูกต้อง
ฉันกำลังสร้างแอปพลิเคชันด้วย API ที่ใช้ REST และมาถึงจุดที่ฉันระบุรหัสสถานะสำหรับแต่ละคำขอ ฉันควรส่งรหัสสถานะใดสำหรับคำร้องขอที่ไม่ผ่านการตรวจสอบความถูกต้องหรือที่คำขอกำลังพยายามเพิ่มซ้ำในฐานข้อมูลของฉัน ฉันได้ตรวจสอบhttp://www.w3.org/Protocols/rfc2616/rfc2616-sec10.htmlแต่ดูเหมือนว่าไม่มีสิ่งใดถูกต้อง มีวิธีปฏิบัติทั่วไปเมื่อส่งรหัสสถานะหรือไม่

11
การโพสต์ไฟล์และข้อมูลที่เกี่ยวข้องไปยัง RESTful WebService ควรเป็น JSON
นี่อาจจะเป็นคำถามที่โง่ แต่ฉันมีหนึ่งในคืนนั้น ในแอปพลิเคชันฉันกำลังพัฒนา RESTful API และเราต้องการให้ลูกค้าส่งข้อมูลเป็น JSON ส่วนหนึ่งของแอปพลิเคชันนี้ต้องการให้ลูกค้าอัปโหลดไฟล์ (โดยทั่วไปคือรูปภาพ) รวมถึงข้อมูลเกี่ยวกับรูปภาพ ฉันมีปัญหาในการติดตามว่าเกิดอะไรขึ้นในคำขอเดียว เป็นไปได้หรือไม่ที่ Base64 ข้อมูลไฟล์ลงในสตริง JSON? ฉันจะต้องทำการโพสต์ 2 ครั้งไปยังเซิร์ฟเวอร์หรือไม่ ฉันไม่ควรใช้ JSON สำหรับสิ่งนี้? ในฐานะที่เป็นบันทึกด้านข้างเรากำลังใช้ Grails บนแบ็กเอนด์และบริการเหล่านี้เข้าถึงได้โดยลูกค้ามือถือดั้งเดิม (iPhone, Android, ฯลฯ ) หากมีสิ่งใดที่สร้างความแตกต่าง
757 json  rest  grails  file-upload 

14
รับรองความถูกต้องสงบ
การรับรองความถูกต้อง RESTful หมายถึงอะไรและทำงานอย่างไร ฉันไม่พบภาพรวมที่ดีใน Google ความเข้าใจเดียวของฉันคือคุณส่งคีย์เซสชั่น (remeberal) ใน URL แต่สิ่งนี้อาจผิดอย่างมาก

13
คุณจะตั้งค่าหัวข้อประเภทเนื้อหาสำหรับคำขอ HttpClient ได้อย่างไร
ฉันกำลังพยายามตั้งContent-Typeส่วนหัวของHttpClientวัตถุตาม API ที่ฉันกำลังเรียก ฉันลองตั้งค่าContent-Typeดังนี้: using (var httpClient = new HttpClient()) { httpClient.BaseAddress = new Uri("http://example.com/"); httpClient.DefaultRequestHeaders.Add("Accept", "application/json"); httpClient.DefaultRequestHeaders.Add("Content-Type", "application/json"); // ... } มันช่วยให้ฉันเพิ่มAcceptส่วนหัว แต่เมื่อฉันพยายามเพิ่มContent-Typeมันจะโยนข้อยกเว้นต่อไปนี้: ชื่อส่วนหัวที่ใช้ผิด ตรวจสอบให้แน่ใจว่ามีการใช้ส่วนหัวคำขอพร้อม HttpRequestMessageส่วนหัวตอบกลับHttpResponseMessageและส่วนหัวเนื้อหากับHttpContentวัตถุ ฉันจะตั้งค่าContent-Typeส่วนหัวในHttpClientคำขอได้อย่างไร
739 c#  asp.net  api  http  rest 


15
หน่วยงานที่ได้รับอนุญาตสำหรับคำขอ HTTP DELETE หรือไม่
เมื่อออกคำขอ HTTP DELETE URI คำขอควรระบุทรัพยากรที่จะลบอย่างสมบูรณ์ อย่างไรก็ตามอนุญาตให้เพิ่ม meta-data พิเศษเป็นส่วนหนึ่งของเอนทิตีของคำขอได้หรือไม่
717 http  rest 

9
การใช้วิธี PUT กับ PATCH ในสถานการณ์จริงของ REST API
ก่อนอื่นคำจำกัดความบางอย่าง: PUT ถูกกำหนดในส่วน 9.6 RFC 2616 : วิธี PUT ร้องขอให้เก็บเอนทิตีที่ถูกล้อมไว้ภายใต้ Request-URI ที่ให้มา ถ้าขอ URI หมายถึงทรัพยากรที่มีอยู่แล้วนิติบุคคลที่แนบมาควรจะถือว่าเป็นรุ่นที่ปรับเปลี่ยนคนที่อาศัยอยู่บนเซิร์ฟเวอร์ต้นทาง หาก Request-URI ไม่ได้ชี้ไปที่ทรัพยากรที่มีอยู่และ URI นั้นสามารถกำหนดเป็นทรัพยากรใหม่โดยตัวแทนผู้ใช้ที่ร้องขอเซิร์ฟเวอร์ต้นทางสามารถสร้างทรัพยากรด้วย URI นั้น PATCH ถูกกำหนดในRFC 5789 : วิธีการ PATCH ขอให้ชุดของการเปลี่ยนแปลงที่อธิบายไว้ในเอนทิตีคำขอจะนำไปใช้กับทรัพยากรที่ระบุโดย Request- URI นอกจากนี้ตามRFC 2616 มาตรา 9.1.2 PUT นั้นเป็น Idempotent ในขณะที่ PATCH นั้นไม่ได้เป็น ตอนนี้ให้เราดูตัวอย่างจริง เมื่อฉันจะโพสต์ไป/usersกับข้อมูล{username: 'skwee357', email: 'skwee357@domain.com'}และเซิร์ฟเวอร์ที่มีความสามารถในการสร้างทรัพยากรก็จะตอบสนองกับ 201 สถานที่ตั้งทรัพยากร (สมมติ/users/1) และโทรไปใด …
681 json  rest  http  put  http-method 

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