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

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

4
บุรุษไปรษณีย์ Chrome: ความแตกต่างระหว่าง form-data, x-www-form-urlencoded และ raw คืออะไร
ฉันใช้ส่วนขยายบุรุษไปรษณีย์ Chrome สำหรับทดสอบบริการเว็บ มีสามตัวเลือกสำหรับป้อนข้อมูล ฉันเดาว่าrawสำหรับการส่ง JSON ความแตกต่างระหว่างอีกสองคืออะไรform-dataและx-www-form-urlencoded?

4
การร้องขอไปยัง RESTful API โดยใช้ python
ฉันมี RESTful API ที่ฉันได้สัมผัสโดยใช้การใช้ Elasticsearch บนอินสแตนซ์ของ EC2 เพื่อจัดทำดัชนีคลังเนื้อหา ฉันสามารถค้นหาด้วยการเรียกใช้สิ่งต่อไปนี้จากเทอร์มินัลของฉัน (MacOSX): curl -XGET 'http://ES_search_demo.com/document/record/_search?pretty=true' -d '{ "query": { "bool": { "must": [ { "text": { "record.document": "SOME_JOURNAL" } }, { "text": { "record.articleTitle": "farmers" } } ], "must_not": [], "should": [] } }, "from": 0, "size": 50, "sort": [], "facets": {} …

9
REST API 404: URI ไม่ดีหรือทรัพยากรหายไป
ฉันกำลังสร้าง REST API แต่ฉันพบปัญหา ดูเหมือนว่าวิธีปฏิบัติที่ได้รับการยอมรับในการออกแบบ REST API ก็คือถ้าทรัพยากรที่ร้องขอไม่มีอยู่จะมีการส่งคืน 404 อย่างไรก็ตามสำหรับฉันมันเพิ่มความกำกวมที่ไม่จำเป็น HTTP 404 นั้นเชื่อมโยงกับ URI ที่ไม่ดีมากกว่าเดิม ดังนั้นในความเป็นจริงเรากำลังพูดว่า"ไม่ว่าคุณจะถูกที่ แต่ไม่มีบันทึกที่เฉพาะเจาะจงหรือไม่มีตำแหน่งดังกล่าวใน Internets! ฉันไม่แน่ใจว่าที่หนึ่ง ... " พิจารณา URI ต่อไปนี้: http://mywebsite/api/user/13 หากฉันได้รับ 404 กลับมานั่นเป็นเพราะผู้ใช้ 13 ไม่มีอยู่หรือไม่ หรือเป็นเพราะ URL ของฉันควรเป็น: http://mywebsite/restapi/user/13 ก่อนหน้านี้ฉันเพิ่งส่งคืนผลลัพธ์ NULL พร้อมHTTP 200 OKรหัสตอบกลับหากไม่มีระเบียน มันง่ายและในความคิดของฉันสะอาดมากถึงแม้ว่ามันจะไม่ได้รับการปฏิบัติที่จำเป็น แต่มีวิธีที่ดีกว่าในการทำเช่นนี้?
219 web-services  http  rest 

7
การตัดสินใจระหว่าง HttpClient และ WebClient
เว็บแอปของเรากำลังทำงานใน. Net Framework 4.0 UI เรียกวิธีควบคุมผ่านการเรียก ajax เราจำเป็นต้องใช้บริการ REST จากผู้ขายของเรา ฉันกำลังประเมินวิธีที่ดีที่สุดในการเรียกใช้บริการ REST ใน. Net 4.0 เซอร์วิส REST ต้องการ Basic Authentication Scheme และสามารถส่งคืนข้อมูลทั้งใน XML และ JSON ไม่มีข้อกำหนดสำหรับการอัปโหลด / ดาวน์โหลดข้อมูลขนาดใหญ่และฉันไม่เห็นอะไรเลยในอนาคต ฉันดูโครงการโอเพนซอร์สสองสามโครงการสำหรับการใช้ REST และไม่พบค่าใด ๆ ในการพิสูจน์การพึ่งพาเพิ่มเติมในโครงการ เริ่มต้นในการประเมินและWebClient HttpClientฉันดาวน์โหลด HttpClient สำหรับ. Net 4.0 จาก NuGet ผมค้นหาความแตกต่างระหว่างWebClientและHttpClientและเว็บไซต์นี้บอกว่าเดียว HttpClient สามารถจัดการกับสายพร้อมกันและสามารถใช้การแก้ไข DNS, การตั้งค่าคุกกี้และการตรวจสอบ ฉันยังไม่เห็นค่าจริงที่เราอาจได้รับเนื่องจากความแตกต่าง ฉันทำการทดสอบประสิทธิภาพอย่างรวดเร็วเพื่อค้นหาว่าWebClient(การเรียกสาย), HttpClient(ซิงค์และ async) …

2
การปฏิบัติที่ดีที่สุดสำหรับการตอบสนอง POST ที่สงบ
ดังนั้นจึงไม่มีอะไรใหม่ที่นี่ฉันแค่พยายามที่จะได้รับการชี้แจงและดูเหมือนจะไม่พบในโพสต์อื่น ๆ ฉันกำลังสร้างทรัพยากรใหม่อย่างสงบพูด: /books (POST) กับร่างกาย: { title: 'The Lion, the Witch and the Wardrobe', author: 'C. S. Lewis' } ฉันรู้ว่าฉันควรส่งคืน 201 (สร้าง) ด้วยส่วนหัว Location ของทรัพยากรใหม่: Location: /books/12345 คำถามที่ฉันไม่สามารถตอบได้ก็คือสิ่งที่เซิร์ฟเวอร์ควรส่งคืนในร่างกาย ฉันได้ตอบกลับประเภทนี้บ่อยครั้ง: { id: 12345, title: 'The Lion, the Witch and the Wardrobe', author: 'C. S. Lewis' } ฉันได้ทำสิ่งนี้ด้วยเหตุผลสองสามประการ: ฉันได้เขียน API สำหรับเฟรมเวิร์กเอนด์เช่น …

11
JAX-RS / Jersey วิธีการจัดการข้อผิดพลาดที่กำหนดเอง?
ฉันกำลังเรียนรู้ JAX-RS (aka, JSR-311) โดยใช้ Jersey ฉันสร้างทรัพยากรรูทสำเร็จแล้วและกำลังเล่นกับพารามิเตอร์: @Path("/hello") public class HelloWorldResource { @GET @Produces("text/html") public String get( @QueryParam("name") String name, @QueryParam("birthDate") Date birthDate) { // Return a greeting with the name and age } } วิธีนี้ใช้งานได้ดีและจัดการรูปแบบใด ๆ ในสถานที่ปัจจุบันซึ่งเป็นที่เข้าใจกันโดยตัวสร้าง Date (String) (เช่น YYYY / mm / dd และ mm / dd …

9
วิธี HTTP ใดที่ตรงกับวิธี CRUD ใด
ในการเขียนโปรแกรมสไตล์ RESTful เราควรใช้วิธี HTTP เป็นหน่วยการสร้างของเรา ฉันสับสนเล็กน้อยว่าวิธีการใดที่ตรงกับวิธีการ CRUD แบบดั้งเดิม GET / Read และ DELETE / Delete นั้นชัดเจนเพียงพอ อย่างไรก็ตามความแตกต่างระหว่าง PUT / POST คืออะไร พวกเขาตรงกับหนึ่งต่อหนึ่งกับสร้างและปรับปรุง?
213 http  rest  crud  http-method 

10
มีแนวทางการตั้งชื่อสำหรับ REST API หรือไม่ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา ปรับปรุงคำถามนี้ เมื่อสร้าง REST API จะมีแนวทางหรือมาตรฐาน defacto สำหรับการตั้งชื่อการประชุมภายใน API (เช่น: ส่วนประกอบพา ธ ปลายทางของ URL, พารามิเตอร์การสอบถาม) อูฐแคปประจำหรือขีดล่างหรือไม่? คนอื่น ๆ ? ตัวอย่างเช่น: api.service.com/helloWorld/userId/x หรือ api.service.com/hello_world/user_id/x หมายเหตุ: นี่ไม่ใช่คำถามของการออกแบบ RESTful API แต่เป็นแนวทางการตั้งชื่อเพื่อใช้สำหรับส่วนประกอบของพา ธ ในที่สุดและ / หรือพารามิเตอร์สตริงการสืบค้นที่ใช้ แนวทางใดจะได้รับการชื่นชม

11
แนวทางปฏิบัติที่ดีที่สุดสำหรับการอัพเดทบางส่วนในบริการ RESTful
ฉันกำลังเขียนบริการ RESTful สำหรับระบบการจัดการลูกค้าและฉันพยายามค้นหาวิธีปฏิบัติที่ดีที่สุดสำหรับการปรับปรุงระเบียนบางส่วน ตัวอย่างเช่นฉันต้องการให้ผู้โทรสามารถอ่านบันทึกทั้งหมดด้วยคำขอ GET แต่สำหรับการอัปเดตจะอนุญาตการดำเนินการบางอย่างในบันทึกเท่านั้นเช่นเปลี่ยนสถานะจากเปิดใช้งานเป็นปิดใช้งาน (ฉันมีสถานการณ์ที่ซับซ้อนกว่านี้) ฉันไม่ต้องการให้ผู้โทรส่งเร็กคอร์ดทั้งหมดที่มีเพียงฟิลด์ที่อัปเดตด้วยเหตุผลด้านความปลอดภัย (มันรู้สึกเหมือน overkill) มีวิธีที่แนะนำในการสร้าง URIs หรือไม่? เมื่ออ่าน REST หนังสือสไตล์ RPC โทรดูเหมือนจะขมวดคิ้ว หากการโทรต่อไปนี้ส่งคืนระเบียนลูกค้าแบบเต็มสำหรับลูกค้าที่มี id 123 GET /customer/123 <customer> {lots of attributes} <status>ENABLED</status> {even more attributes} </customer> ฉันจะอัปเดตสถานะได้อย่างไร POST /customer/123/status <status>DISABLED</status> POST /customer/123/changeStatus DISABLED ... อัปเดต : เพื่อเพิ่มคำถาม วิธีหนึ่งรวม 'การเรียกตรรกะทางธุรกิจ' ลงใน REST api อย่างไร มีวิธีที่ตกลงกันในการทำเช่นนี้? …
208 rest 

6
วิธีการนำ REST API ที่ปลอดภัยไปใช้กับ node.js
ฉันเริ่มวางแผน REST API ด้วย node.js, express และ mongodb API ให้ข้อมูลสำหรับเว็บไซต์ (พื้นที่สาธารณะและส่วนตัว) และอาจเป็นแอปมือถือในภายหลัง ส่วนหน้าจะถูกพัฒนาด้วย AngularJS บางวันฉันได้อ่านมากมายเกี่ยวกับการรักษาความปลอดภัย REST APIs แต่ฉันไม่ได้รับการแก้ไขขั้นสุดท้าย เท่าที่ฉันเข้าใจคือการใช้ HTTPS เพื่อให้ความปลอดภัยขั้นพื้นฐาน แต่ฉันจะป้องกัน API ในกรณีการใช้งานได้อย่างไร: ผู้เยี่ยมชม / ผู้ใช้เว็บไซต์ / แอพเท่านั้นที่ได้รับอนุญาตให้รับข้อมูลสำหรับพื้นที่สาธารณะของเว็บไซต์ / แอพ ผู้ใช้ที่ผ่านการรับรองและได้รับอนุญาตเท่านั้นที่ได้รับอนุญาตให้รับข้อมูลสำหรับพื้นที่ส่วนตัว (และเฉพาะข้อมูลที่ผู้ใช้ให้สิทธิ์) ในขณะนี้ฉันคิดว่าจะอนุญาตให้ผู้ใช้ที่มีเซสชันที่ใช้งานอยู่ใช้ API เท่านั้น ในการอนุญาตผู้ใช้ฉันจะใช้หนังสือเดินทางและขออนุญาตฉันต้องใช้บางสิ่งเพื่อตัวเอง ทั้งหมดอยู่ด้านบนของ HTTPS ใครสามารถให้การฝึกฝนหรือประสบการณ์ที่ดีที่สุดได้บ้าง? มี "สถาปัตยกรรม" ของฉันขาดหรือไม่


4
REST API - การประมวลผลไฟล์ (เช่นรูปภาพ) - แนวทางปฏิบัติที่ดีที่สุด
เรากำลังพัฒนาเซิร์ฟเวอร์ด้วย REST API ซึ่งยอมรับและตอบกลับด้วย JSON ปัญหาคือถ้าคุณต้องการอัปโหลดภาพจากลูกค้าไปยังเซิร์ฟเวอร์ หมายเหตุ: และฉันกำลังพูดถึงกรณีใช้งานที่เอนทิตี (ผู้ใช้) สามารถมีหลายไฟล์ (carPhoto, licensePhoto) และยังมีคุณสมบัติอื่น ๆ (ชื่ออีเมล ... ) แต่เมื่อคุณสร้างผู้ใช้ใหม่คุณไม่ต้อง ไม่ต้องส่งภาพเหล่านี้พวกเขาจะถูกเพิ่มหลังจากกระบวนการลงทะเบียน แนวทางแก้ไขที่ฉันทราบ แต่แต่ละข้อมีข้อบกพร่อง 1. ใช้ multipart / form-data แทน JSON ดี : คำขอ POST และ PUT นั้นสงบที่สุดเท่าที่จะเป็นไปได้พวกเขาสามารถมีอินพุตข้อความพร้อมไฟล์ได้ ข้อเสีย : มันไม่ใช่ JSON อีกต่อไปซึ่งง่ายต่อการทดสอบการดีบักและอื่น ๆ เปรียบเทียบกับหลายส่วน / แบบฟอร์มข้อมูล 2. อนุญาตให้อัปเดตไฟล์แยกต่างหาก คำขอ POST สำหรับการสร้างผู้ใช้ใหม่ไม่อนุญาตให้เพิ่มรูปภาพ (ซึ่งเป็นสิ่งที่เราใช้ในกรณีที่ฉันพูดตอนเริ่มต้น) …

8
ความแตกต่างระหว่าง OData และ REST เว็บเซอร์วิส
ขณะที่มองในด้านการบริการเว็บบางอย่างผมวิ่งข้ามเทคโนโลยีนี้ "ใหม่" ที่ไมโครซอฟท์เรียกOData การอ่านคำอธิบายของพวกเขาภายในคำถามที่พบบ่อยเกี่ยวกับสิ่งที่เป็น OData ฉันมีเวลายากที่จะแยกแยะ OData จากเว็บเซอร์วิส REST-ful ใครช่วยได้โปรดช่วยฉันเข้าใจความแตกต่าง
196 web-services  rest  odata 

4
Rails vs ใหม่สร้าง
เหตุใดจึงจำเป็นต้องกำหนดวิธีการใหม่ในตัวควบคุม RESTful ตามด้วยวิธีการสร้าง? การค้นหาของ Google ไม่ได้ให้คำตอบที่ฉันต้องการ ฉันเข้าใจความแตกต่าง แต่จำเป็นต้องรู้ว่าทำไมพวกเขาถึงถูกใช้อย่างที่เป็น

10
การทำธุรกรรมทั่ว REST microservices?
สมมติว่าเรามี Microservices ผู้ใช้ Wallet REST และเกตเวย์ API ที่จับคู่สิ่งต่าง ๆ เข้าด้วยกัน เมื่อ Bob ลงทะเบียนในเว็บไซต์ของเราเกตเวย์ API ของเราจำเป็นต้องสร้างผู้ใช้ผ่าน microservice ของผู้ใช้และกระเป๋าเงินผ่าน microservice ของ Wallet ต่อไปนี้คือสถานการณ์บางอย่างที่อาจเกิดความผิดพลาด: การสร้างผู้ใช้ Bob ล้มเหลว: ไม่เป็นไรเราเพิ่งส่งคืนข้อความแสดงข้อผิดพลาดไปยัง Bob เรากำลังใช้ธุรกรรม SQL ดังนั้นจึงไม่มีใครเห็น Bob ในระบบ ทุกอย่างดี :) Bob ของผู้ใช้ถูกสร้างขึ้น แต่ก่อนที่จะสร้าง Wallet ของเราได้ API ของฮาร์ดไดรฟ์จะขัดข้อง ตอนนี้เรามีผู้ใช้ที่ไม่มีกระเป๋าเงิน (ข้อมูลไม่สอดคล้องกัน) Bob ผู้ใช้ถูกสร้างขึ้นและในขณะที่เรากำลังสร้าง Wallet การเชื่อมต่อ HTTP จะลดลง การสร้างกระเป๋าเงินอาจสำเร็จหรือไม่ได้ มีวิธีแก้ไขปัญหาใดบ้างที่ป้องกันไม่ให้เกิดความไม่สอดคล้องกันของข้อมูล …

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