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

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

11
วิธีการเวอร์ชัน REST URI
วิธีใดเป็นวิธีที่ดีที่สุดในการสร้าง URI REST ขณะนี้เรามีเวอร์ชัน # ใน URI เองเช่น http://example.com/users/v4/1234/ สำหรับเวอร์ชัน 4 ของการเป็นตัวแทนนี้ เวอร์ชันอยู่ใน queryString หรือไม่ กล่าวคือ http://example.com/users/1234?version=4 หรือการกำหนดเวอร์ชันทำได้ดีที่สุดด้วยวิธีอื่น?

5
REST HATEOAS (ระดับวุฒิภาวะ 3) มีประโยชน์ / สำคัญอย่างไร?
ฉันกำลังมีส่วนร่วมในโครงการที่สมาชิกในทีมอาวุโสบางคนเชื่อว่า REST API ต้องเป็นไปตามมาตรฐาน HATEOAS และใช้ระดับวุฒิภาวะทั้งหมดของ Richardson ( http://martinfowler.com/articles/richardsonMaturityModel.html )! การใช้งาน REST ของ AFAIK ส่วนใหญ่ไม่เป็นไปตามข้อกำหนดของ HATEOAS และควรมีเหตุผลที่ดีว่าทำไมคนจำนวนมากถึงไม่ทำเช่นนี้ ฉันสามารถนึกถึงเหตุผลต่างๆเช่นความซับซ้อนที่เพิ่มเข้ามาการขาดเฟรมเวิร์ก (ฝั่งเซิร์ฟเวอร์และไคลเอนต์) ปัญหาด้านประสิทธิภาพและ ... คุณคิดอย่างไร? คุณเคยมีประสบการณ์กับ HATEOAS ในโครงการจริงหรือไม่?
110 rest  hateoas 

7
การตอบสนองรหัสสถานะ HTTP ที่เหมาะสมสำหรับคำขอทั่วไปที่ไม่สำเร็จคืออะไร (ไม่ใช่ข้อผิดพลาด)
ฉันกำลังสร้าง RESTful API ที่จะประมวลผลการโต้ตอบของผู้ใช้จำนวนมากรวมถึงการสั่งซื้อโดยใช้บัตรเครดิตที่จัดเก็บไว้ ในกรณีที่คำสั่งซื้อสำเร็จฉันจะส่งคืน 200 OK และในกรณีที่คำขอสั่งซื้อผิดรูปแบบหรือไม่ถูกต้องฉันจะส่งคืน 400 คำขอที่ไม่ถูกต้อง แต่ฉันควรส่งคืนอะไรหากเกิดปัญหาระหว่างการดำเนินการตามคำสั่งซื้อจริง ลูกค้า POSTS สั่งไปยังเซิร์ฟเวอร์สำหรับทรัพยากรผู้ใช้ หากไม่มีผู้ใช้ 404 Not Found จะถูกส่งกลับ รูปแบบคำสั่งซื้อและข้อมูลได้รับการตรวจสอบแล้ว หากไม่ถูกต้อง 400 คำขอที่ไม่ถูกต้องจะถูกส่งกลับ คำสั่งซื้อได้รับการดำเนินการ หากคำสั่งซื้อสำเร็จจะมีการส่งคืน 201 ที่สร้างขึ้นสำหรับคำสั่งซื้อ หากพบข้อผิดพลาดที่ไม่คาดคิดข้อผิดพลาด 500 เซิร์ฟเวอร์จะถูกส่งกลับ ขั้นตอนสุดท้ายคือปัญหา - ฉันจะคืนอะไรได้บ้างหากคำสั่งซื้อไม่สมบูรณ์ด้วยเหตุผลอื่นใด สถานการณ์ที่เป็นไปได้อาจรวมถึง: สินค้าหมด ถึงขีด จำกัด การสั่งซื้อสูงสุดของผู้ใช้แล้ว การทำธุรกรรมบัตรเครดิตล้มเหลว (เงินไม่เพียงพอ ฯลฯ ) ดูเหมือนว่ามันจะไม่เหมาะสมสำหรับ 400 หรือ 500 หากสิ่งใดที่ฉันเห็นว่าเป็น 400 หากไม่มีรหัสที่ดีกว่าคำขอนั้นไม่ถูกต้องตามกฎทางธุรกิจ ดูเหมือนจะไม่ถูกต้อง …

5
วิธีโพสต์ JSON เป็น PHP ด้วย curl
ฉันอาจจะออกจากฐาน แต่ฉันพยายามมาตลอดทั้งบ่ายเพื่อเรียกใช้คำสั่ง curl postในบทช่วยสอนกรอบ PHP แบบถอยนี้ สิ่งที่ฉันไม่เข้าใจคือ PHP ควรตีความ POST ของฉันอย่างไรมันมักจะปรากฏเป็นอาร์เรย์ว่างเสมอ curl -i -X POST -d '{"screencast":{"subject":"tools"}}' \ http://localhost:3570/index.php/trainingServer/screencast.json (เครื่องหมายทับในนั้นเป็นเพียงเพื่อให้ฉันไม่ดูเหมือนคนงี่เง่า แต่ฉันดำเนินการจาก windows โดยใช้ PHP 5.2 และลองบนเซิร์ฟเวอร์ Linux เวอร์ชันเดียวกันกับ Linux curl) ต้องมีบางอย่างที่ฉันขาดหายไปเพราะมันดูตรงไปตรงมาโพสต์นั้นตีความไม่ถูกถ้าเป็นเช่นนั้นทุกอย่างจะทำงานได้ดี นี่คือสิ่งที่ฉันได้รับกลับมา: HTTP / 1.1 409 ความขัดแย้ง วันที่: ศุกร์ที่ 01 พฤษภาคม 2552 22:03:00 GMT เซิร์ฟเวอร์: Apache / 2.2.8 (Win32) PHP …
108 php  rest  post 

13
WSDL vs REST ข้อดีและข้อเสีย
ที่เกี่ยวข้อง: เหตุใดจึงต้องใช้ REST แทนบริการบนเว็บ เมื่อตัดสินใจว่าจะใช้บริการเว็บโดยใช้ SOAP หรือ REST (โดยที่ฉันหมายถึง HTTP / XML ในลักษณะ RESTful) ฉันควรระวังอะไรและควรคิดอย่างไร ฉันคิดว่านี่ไม่ใช่ขนาดเดียวที่เหมาะกับทุกสิ่งดังนั้นฉันจะเลือกใช้อย่างไร
108 web-services  rest  wsdl 

9
รีเซ็ตรหัสผ่าน RESTful
วิธีที่เหมาะสมในการจัดโครงสร้างทรัพยากร RESTful สำหรับการรีเซ็ตรหัสผ่านคืออะไร? แหล่งข้อมูลนี้มีไว้เพื่อเป็นตัวรีเซ็ตรหัสผ่านสำหรับผู้ที่ทำรหัสผ่านหายหรือลืม รหัสผ่านเดิมทำให้รหัสผ่านไม่ถูกต้องและส่งรหัสผ่านให้ทางอีเมล สองตัวเลือกที่ฉันมีคือ: POST /reset_password/{user_name} หรือ... POST /reset_password -Username passed through request body ฉันค่อนข้างมั่นใจว่าคำขอควรเป็น POST ฉันไม่ค่อยมั่นใจว่าฉันได้เลือกชื่อที่เหมาะสมแล้ว และฉันไม่แน่ใจว่าควรส่ง user_name ผ่าน URL หรือเนื้อหาคำขอ

11
วิธีป้องกันไม่ให้เบราว์เซอร์เรียกใช้ป๊อปอัปการตรวจสอบสิทธิ์พื้นฐานและจัดการข้อผิดพลาด 401 โดยใช้ Jquery
ฉันต้องการส่งคำขออนุญาตโดยใช้การตรวจสอบสิทธิ์พื้นฐาน ฉันติดตั้งสำเร็จโดยใช้ jquery อย่างไรก็ตามเมื่อฉันได้รับข้อผิดพลาด 401 ป๊อปอัพเบราว์เซอร์การตรวจสอบสิทธิ์ขั้นพื้นฐานถูกเปิดขึ้นและไม่เรียกการเรียกกลับข้อผิดพลาด jquery ajax

5
ส่งข้อมูล POST ผ่าน raw json กับบุรุษไปรษณีย์
ฉันมี Postman (อันที่ไม่ได้เปิดใน Chrome) และฉันกำลังพยายามส่งคำขอ POST โดยใช้ raw json ในแท็บ Body ฉันได้เลือก "raw" และ "JSON (application / json)" ด้วยเนื้อหานี้: { "foo": "bar" } สำหรับส่วนหัวฉันมี 1 Content-Type: application/json ด้าน PHP print_r($_POST);ตอนนี้ฉันกำลังทำอยู่และฉันได้รับอาร์เรย์ว่างเปล่า ถ้าฉันใช้ jQuery และทำ: $.ajax({ "type": "POST", "url": "/rest/index.php", "data": { "foo": "bar" } }).done(function (d) { console.log(d); }); ฉันได้รับตามที่คาดไว้: Array …
107 php  json  rest  postman 

5
การตอบสนอง REST ที่เหมาะสมสำหรับตารางว่าง?
สมมติว่าคุณต้องการรับรายชื่อผู้ใช้โดยโทรGETไปapi/usersแต่ขณะนี้ตารางถูกตัดทอนจึงไม่มีผู้ใช้ คำตอบที่เหมาะสมสำหรับสถานการณ์นี้คืออะไร: 404หรือ204?
107 api  http  rest 

4
คุณจัดการโค้ดเบสสำหรับ API เวอร์ชันได้อย่างไร
ฉันได้อ่านข้อมูลเกี่ยวกับกลยุทธ์การกำหนดเวอร์ชันสำหรับ ReST APIs และสิ่งที่ดูเหมือนว่าไม่มีที่อยู่คือวิธีที่คุณจัดการ codebase ที่สำคัญ สมมติว่าเรากำลังทำการเปลี่ยนแปลงหลายอย่างกับ API ตัวอย่างเช่นการเปลี่ยนทรัพยากรของลูกค้าเพื่อให้ส่งกลับแยกforenameและsurnameฟิลด์แทนที่จะเป็นnameฟิลด์เดียว (สำหรับตัวอย่างนี้ฉันจะใช้โซลูชันการกำหนดเวอร์ชัน URL เนื่องจากง่ายต่อการทำความเข้าใจแนวคิดที่เกี่ยวข้อง แต่คำถามนี้ใช้ได้กับการต่อรองเนื้อหาหรือส่วนหัว HTTP ที่กำหนดเอง) ขณะนี้เรามีปลายทางที่และอีกปลายทางที่เข้ากันไม่ได้http://api.mycompany.com/v1/customers/{id} http://api.mycompany.com/v2/customers/{id}เรายังคงปล่อยการแก้ไขข้อบกพร่องและการอัปเดตความปลอดภัยให้กับ v1 API แต่การพัฒนาฟีเจอร์ใหม่ทั้งหมดมุ่งเน้นไปที่ v2 เราจะเขียนทดสอบและปรับใช้การเปลี่ยนแปลงในเซิร์ฟเวอร์ API ของเราได้อย่างไร ฉันเห็นวิธีแก้ปัญหาอย่างน้อยสองวิธี: ใช้สาขา / แท็กควบคุมแหล่งที่มาสำหรับ v1 codebase v1 และ v2 ได้รับการพัฒนาและปรับใช้อย่างอิสระโดยมีการผสานการควบคุมการแก้ไขที่ใช้ตามความจำเป็นเพื่อใช้การแก้ไขข้อบกพร่องเดียวกันกับทั้งสองเวอร์ชันซึ่งคล้ายกับวิธีที่คุณจัดการโค้ดเบสสำหรับแอปเนทีฟเมื่อพัฒนาเวอร์ชันใหม่ที่สำคัญในขณะที่ยังคงรองรับเวอร์ชันก่อนหน้า ทำให้ codebase ทราบถึงเวอร์ชันของ API ดังนั้นคุณจึงลงเอยด้วย codebase เดียวที่มีทั้งตัวแทนลูกค้า v1 และตัวแทนลูกค้า v2 ถือว่าการกำหนดเวอร์ชันเป็นส่วนหนึ่งของสถาปัตยกรรมโซลูชันของคุณแทนที่จะเป็นปัญหาในการปรับใช้ - อาจใช้เนมสเปซและการกำหนดเส้นทางร่วมกันเพื่อให้แน่ใจว่าคำขอได้รับการจัดการโดยเวอร์ชันที่ถูกต้อง ข้อได้เปรียบที่ชัดเจนของโมเดลสาขาคือการลบเวอร์ชัน API เก่านั้นเป็นเรื่องเล็กน้อยเพียงแค่หยุดการปรับใช้สาขา …

4
การดำเนินการที่ไม่ใช่ CRUD ในบริการ RESTful
วิธี "RESTful" ในการเพิ่มการดำเนินการที่ไม่ใช่ CRUD ไปยังบริการ RESTful คืออะไร สมมติว่าฉันมีบริการที่อนุญาตให้ CRUD เข้าถึงบันทึกเช่นนี้: GET /api/car/123 <- Returns information for the Car object with ID 123 POST /api/car <- Creates a new car (with properties in the request) PUT /api/car/123 <- Updates car 123 (with properties in the request) DELETE /api/car/123 <- Deletes car …
106 web-services  rest 

17
Spring Boot: ไม่สามารถเข้าถึง REST Controller บน localhost (404)
ฉันกำลังพยายามปรับตัวอย่าง REST Controller บนเว็บไซต์ Spring Boot ขออภัยฉันได้รับข้อผิดพลาดต่อไปนี้เมื่อฉันพยายามเข้าถึงlocalhost:8080/itemURL { "timestamp": 1436442596410, "status": 404, "error": "Not Found", "message": "No message available", "path": "/item" } ปอม: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>SpringBootTest</groupId> <artifactId>SpringBootTest</artifactId> <version>0.0.1-SNAPSHOT</version> <properties> <javaVersion>1.8</javaVersion> <mainClassPackage>com.nice.application</mainClassPackage> <mainClass>${mainClassPackage}.InventoryApp</mainClass> </properties> <build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.3</version> <configuration> <source>${javaVersion}</source> <target>${javaVersion}</target> </configuration> </plugin> <!-- Makes the …
105 java  rest  spring-boot 

7
Scala framework สำหรับ Rest API Server? [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน4 ปีที่แล้ว ปรับปรุงคำถามนี้ เรากำลังคิดที่จะย้ายเซิร์ฟเวอร์ Rest API ของเรา (อยู่ในบริการเว็บบน Symfony PHP) ไปยัง Scala ด้วยเหตุผลหลายประการ: ความเร็วไม่มีค่าใช้จ่าย CPU น้อยรหัสน้อยความสามารถในการปรับขนาด ฯลฯ ฉันไม่รู้จัก Scala จนกระทั่งหลาย ๆ หลายวันก่อน แต่ฉันสนุกกับสิ่งที่ได้เรียนรู้ในวันนี้ด้วยหนังสือ Scala และบล็อกโพสต์และคำถามทั้งหมด (มันไม่ได้น่าเกลียดเท่าไหร่!) ฉันมีตัวเลือกดังต่อไปนี้: สร้างเซิร์ฟเวอร์ Rest API ตั้งแต่เริ่มต้น ใช้เฟรมเวิร์กเว็บ Scala เล็ก ๆ เช่นScalatra ใช้ลิฟท์ บางสิ่งที่ฉันจะต้องใช้: คำขอ HTTP, เอาต์พุต JSON, MySQL …
105 api  rest  scala  lift 

5
รูปแบบวันที่ที่แนะนำสำหรับ REST GET API
รูปแบบการประทับเวลาที่แนะนำสำหรับ REST GET API เป็นอย่างไร: http://api.example.com/start_date/{timestamp} ฉันคิดว่ารูปแบบวันที่จริงควรเป็นรูปแบบ ISO 8601 เช่นYYYY-MM-DDThh:mm:ssZสำหรับเวลา UTC เราควรใช้ ISO 8601 เวอร์ชันที่ไม่มียัติภังค์และโคลอนเช่น: http://api.example.com/start_date/YYYYMMDDThhmmssZ หรือเราควรเข้ารหัสรูปแบบ ISO 8601 โดยใช้เช่นการเข้ารหัส base64?
105 http  url  rest  date  get 

6
Spring Boot Rest Controller จะส่งคืนรหัสสถานะ HTTP ต่างกันอย่างไร
ฉันใช้ Spring Boot สำหรับ REST API แบบธรรมดาและต้องการส่งคืนรหัสสถานะ HTTP ที่ถูกต้องหากมีบางอย่างล้มเหลว @RequestMapping(value="/rawdata/", method = RequestMethod.PUT) @ResponseBody @ResponseStatus( HttpStatus.OK ) public RestModel create(@RequestBody String data) { // code ommitted.. // how do i return a correct status code if something fails? } เมื่อเพิ่งเริ่มใช้ Spring และ Spring Boot คำถามพื้นฐานคือฉันจะส่งคืนรหัสสถานะต่างๆได้อย่างไรเมื่อมีบางอย่างตกลงหรือล้มเหลว
104 spring  rest  spring-boot 

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