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

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

5
วิธีสร้าง REST API ที่ใช้อาร์เรย์ของ id สำหรับทรัพยากร
ฉันกำลังสร้าง REST API สำหรับโครงการของฉัน API สำหรับการรับ INFO ของผู้ใช้คือ: api.com/users/[USER-ID] ฉันต้องการอนุญาตให้ลูกค้าส่งผ่านรายการ ID ผู้ใช้ ฉันจะสร้าง API เพื่อให้ RESTful และอยู่ในรายการ ID ผู้ใช้ได้อย่างไร
103 api  rest 

3
การเข้าสู่ระบบ RESTful ล้มเหลว: ส่งคืน 401 หรือการตอบกลับที่กำหนดเอง
นี่เป็นคำถามเชิงแนวคิด ฉันมีแอปพลิเคชันไคลเอนต์ (มือถือ) ที่ต้องการรองรับการล็อกอินกับบริการเว็บ RESTful เนื่องจากบริการบนเว็บเป็น RESTful จำนวนนี้จะทำให้ลูกค้ายอมรับชื่อผู้ใช้ / รหัสผ่านจากผู้ใช้ยืนยันชื่อผู้ใช้ / รหัสผ่านนั้นกับบริการจากนั้นจำไว้ว่าจะส่งชื่อผู้ใช้ / รหัสผ่านนั้นพร้อมกับคำขอที่ตามมาทั้งหมด การตอบกลับอื่น ๆ ทั้งหมดในบริการเว็บนี้มีให้ในรูปแบบ JSON คำถามคือเมื่อฉันสอบถามบริการเว็บเพียงเพื่อดูว่าชื่อผู้ใช้ / รหัสผ่านที่ระบุนั้นถูกต้องหรือไม่บริการเว็บควรตอบกลับด้วยข้อมูล JSON เสมอเพื่อบอกฉันว่าประสบความสำเร็จหรือไม่สำเร็จหรือควรส่งคืน HTTP 200 ในข้อมูลประจำตัวและ HTTP ที่ดี 401 ในข้อมูลประจำตัวที่ไม่ถูกต้อง เหตุผลที่ฉันถามคือบริการ RESTful อื่น ๆ ใช้ 401 สำหรับข้อมูลรับรองที่ไม่ถูกต้องแม้ว่าคุณจะถามว่าข้อมูลรับรองถูกต้องหรือไม่ อย่างไรก็ตามความเข้าใจของฉันเกี่ยวกับคำตอบ 401 คือว่ามันเป็นตัวแทนของทรัพยากรที่คุณไม่ควรเข้าถึงโดยไม่มีข้อมูลรับรองที่ถูกต้อง แต่ทรัพยากรการเข้าสู่ระบบควรเข้าถึงได้โดยทุกคนเนื่องจากจุดประสงค์ทั้งหมดของทรัพยากรการเข้าสู่ระบบคือการบอกคุณว่าข้อมูลรับรองของคุณถูกต้องหรือไม่ พูดอีกอย่างสำหรับฉันดูเหมือนว่าคำขอเช่น: myservice.com/this/is/a/user/action ควรส่งคืน 401 หากมีการให้ข้อมูลรับรองที่ไม่ถูกต้อง แต่คำขอเช่น: myservice.com/are/these/credentials/valid ไม่ควรส่งคืน 401 …

16
System.Net.Http: หายไปจากเนมสเปซ? (โดยใช้. net 4.5)
TL; DR: ฉันยังใหม่กับภาษานี้และไม่รู้ว่าฉันกำลังทำอะไรอยู่ นี่คือชั้นเรียนของฉันจนถึงตอนนี้: using System; using System.Collections.Generic; using System.Net.Http; using System.Web; using System.Net; using System.IO; public class MyClass { private const string URL = "https://sub.domain.com/objects.json?api_key=123"; private const string data = @"{""object"":{""name"":""Title""}}"; public static void CreateObject() { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL); request.Method = "POST"; request.ContentType = "application/json"; request.ContentLength = data.Length; …
103 c#  api  rest  post 

4
วิธีที่ถูกต้องในการส่งไฟล์จากบริการเว็บ REST ไปยังไคลเอนต์คืออะไร?
ฉันเพิ่งเริ่มพัฒนาบริการ REST แต่ฉันเจอสถานการณ์ที่ยากลำบากนั่นคือการส่งไฟล์จากบริการ REST ของฉันไปยังลูกค้าของฉัน จนถึงตอนนี้ฉันเข้าใจวิธีการส่งประเภทข้อมูลอย่างง่าย (สตริงจำนวนเต็ม ฯลฯ ) แต่การส่งไฟล์เป็นเรื่องที่แตกต่างออกไปเนื่องจากมีรูปแบบไฟล์มากมายที่ฉันไม่รู้ว่าควรเริ่มจากตรงไหน บริการ REST ของฉันสร้างบน Java และฉันใช้ Jersey ฉันกำลังส่งข้อมูลทั้งหมดโดยใช้รูปแบบ JSON ฉันเคยอ่านเกี่ยวกับการเข้ารหัส base64 บางคนบอกว่าเป็นเทคนิคที่ดีบางคนบอกว่าไม่ใช่เพราะปัญหาเรื่องขนาดไฟล์ วิธีที่ถูกต้องคืออะไร? นี่คือลักษณะของคลาสทรัพยากรอย่างง่ายในโครงการของฉัน: import java.sql.SQLException; import java.util.List; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Request; import javax.ws.rs.core.UriInfo; import com.mx.ipn.escom.testerRest.dao.TemaDao; import com.mx.ipn.escom.testerRest.modelo.Tema; @Path("/temas") public class TemaResource { …
103 java  json  web-services  rest  jersey 

6
GraphQL มีข้อเสียหรือไม่? [ปิด]
ปิด . คำถามนี้เป็นคำถามความคิดเห็นตาม ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบได้ด้วยข้อเท็จจริงและการอ้างอิงโดยแก้ไขโพสต์นี้ ปิดให้บริการเมื่อปีที่แล้ว ปรับปรุงคำถามนี้ บทความทั้งหมดเกี่ยวกับ GraphQL จะบอกคุณว่ามันยอดเยี่ยมแค่ไหน แต่มีข้อเสียหรือข้อบกพร่องหรือไม่? ขอบคุณ.

10
REST - ใส่ ID ในร่างกายหรือไม่?
สมมติว่าฉันต้องการมีทรัพยากร RESTful สำหรับผู้คนโดยที่ลูกค้าสามารถกำหนด ID ได้ บุคคลมีลักษณะดังนี้: {"id": <UUID>, "name": "Jimmy"} ตอนนี้ลูกค้าควรบันทึก (หรือ "PUT") อย่างไร PUT /person/UUID {"id": <UUID>, "name": "Jimmy"} - ตอนนี้เรามีการทำซ้ำที่น่ารังเกียจซึ่งเราต้องตรวจสอบตลอดเวลา: ID ในร่างกายตรงกับที่อยู่ในเส้นทางหรือไม่? การแสดงแบบไม่สมมาตร: PUT /person/UUID {"name": "Jimmy"} GET /person/UUID ผลตอบแทน {"id": <UUID>, "name": "Jimmy"} ไม่มีรหัสในเนื้อหา - เฉพาะในตำแหน่ง: PUT /person/UUID {"name": "Jimmy"} GET /person/UUID ผลตอบแทน {"name": "Jimmy"} ชนิดของการไม่มีPOSTดูเหมือนความคิดที่ดีตั้งแต่ ID …
103 rest 

8
Amazon S3 เปลี่ยนชื่อดาวน์โหลดไฟล์
ฉันมีไฟล์ที่เก็บไว้ใน S3 โดยมี GUID เป็นชื่อคีย์ ฉันใช้ URL ที่ลงนามล่วงหน้าเพื่อดาวน์โหลดตามS3 REST API ฉันเก็บชื่อไฟล์ต้นฉบับไว้ในฐานข้อมูลของฉันเอง เมื่อผู้ใช้คลิกเพื่อดาวน์โหลดไฟล์จากเว็บแอปพลิเคชันของฉันฉันต้องการที่จะกลับมาชื่อไฟล์ที่เดิม แต่ขณะนี้สิ่งที่พวกเขาได้รับคือ GUID ฉันจะบรรลุเป้าหมายนี้ได้อย่างไร? แอปพลิเคชันเว็บของฉันอยู่ใน Salesforce ดังนั้นฉันจึงไม่สามารถควบคุมการตอบสนองได้มากนักเปลี่ยนเส้นทางทั้งหมดดาวน์โหลดไฟล์ไปยังเว็บเซิร์ฟเวอร์จากนั้นเปลี่ยนชื่อเนื่องจากข้อ จำกัด ของ Governor มีการเปลี่ยนเส้นทาง HTML, การรีเฟรชเมตา, Javascript ที่ฉันสามารถใช้ได้หรือไม่? มีวิธีใดบ้างในการเปลี่ยนชื่อไฟล์ดาวน์โหลดสำหรับ S3 (สิ่งเดียวที่ฉันคิดได้คือจัดการกับวัตถุเป็นชื่อใหม่ดาวน์โหลดแล้วลบออก) ฉันต้องการหลีกเลี่ยงการสร้างที่เก็บข้อมูลต่อผู้ใช้เนื่องจากเราจะมีผู้ใช้จำนวนมากและยังไม่รับประกันว่าแต่ละไฟล์ในที่เก็บข้อมูลแต่ละไฟล์จะมีชื่อที่ไม่ซ้ำกัน วิธีแก้ปัญหาอื่น ๆ ?

10
Websocket API เพื่อแทนที่ REST API?
ฉันมีแอปพลิเคชันที่ฟังก์ชันหลักทำงานแบบเรียลไทม์ผ่านเว็บซ็อกเก็ตหรือการสำรวจความคิดเห็นแบบยาว อย่างไรก็ตามเว็บไซต์ส่วนใหญ่เขียนในแนว RESTful ซึ่งเหมาะสำหรับแอปพลิเคชันและลูกค้ารายอื่น ๆ ในอนาคต อย่างไรก็ตามฉันกำลังคิดเกี่ยวกับการเปลี่ยนไปใช้ websocket API สำหรับฟังก์ชันไซต์ทั้งหมดโดยห่างจาก REST นั่นจะทำให้ง่ายขึ้นสำหรับฉันในการรวมคุณสมบัติเรียลไทม์เข้ากับทุกส่วนของไซต์ สิ่งนี้จะทำให้การสร้างแอปพลิเคชันหรือไคลเอนต์มือถือยากขึ้นหรือไม่? ฉันพบว่าบางคนกำลังทำสิ่งนี้อยู่แล้ว: SocketStream

1
ทรัพยากรการสตรีมจะเหมาะสมกับกระบวนทัศน์ RESTful ได้อย่างไร
ด้วยบริการ RESTful คุณสามารถสร้างอ่านอัปเดตและลบทรัพยากรได้ ทั้งหมดนี้ทำงานได้ดีเมื่อคุณจัดการกับบางอย่างเช่นสินทรัพย์ฐานข้อมูล แต่สิ่งนี้จะแปลเป็นข้อมูลสตรีมมิ่งได้อย่างไร (หรือเปล่า?) ตัวอย่างเช่นในกรณีของวิดีโอดูเหมือนเป็นเรื่องไร้สาระที่จะถือว่าแต่ละเฟรมเป็นทรัพยากรที่ฉันควรสืบค้นทีละรายการ แต่ฉันจะตั้งค่าการเชื่อมต่อซ็อกเก็ตและสตรีมเฟรมต่างๆ แต่สิ่งนี้ทำลายกระบวนทัศน์ RESTful หรือไม่? จะเป็นอย่างไรหากฉันต้องการย้อนกลับหรือกรอสตรีมไปข้างหน้า สิ่งนี้เป็นไปได้ภายในกระบวนทัศน์ RESTful หรือไม่? ดังนั้น: ทรัพยากรการสตรีมจะเหมาะสมกับกระบวนทัศน์ RESTful ได้อย่างไร สำหรับการนำไปใช้งานฉันกำลังเตรียมพร้อมที่จะสร้างบริการข้อมูลสตรีมมิ่งดังกล่าวและต้องการให้แน่ใจว่าฉันกำลังทำ "วิธีที่ดีที่สุด" ฉันแน่ใจว่าปัญหานี้ได้รับการแก้ไขมาก่อน ใครช่วยชี้ทางให้ฉันดูเนื้อหาดีๆ
101 rest  streaming  theory 


27
'ฟิลด์ต้องการชนิดของถั่วที่หาไม่พบ' error spring restful API โดยใช้ mongodb
ดังนั้นฉันจึงเรียนรู้ฤดูใบไม้ผลิในสองสามสัปดาห์ตามบทช่วยสอนนี้ การสร้างบริการเว็บ RESTful ทุกอย่างเป็นไปด้วยดีจนกระทั่งฉันพยายามรวมเข้ากับ mongodb ดังนั้นฉันจึงทำตามบทแนะนำนี้ การเข้าถึงข้อมูลด้วย MongoDB แต่การปฏิบัติของฉันบางส่วนยังคงใช้แบบแรก โครงสร้างไดเร็กทอรีโปรเจ็กต์ของฉันจึงเป็นแบบนี้ src/ ├── main/ │ └── java/ | ├── model/ | | └── User.java | ├── rest/ | | ├── Application.java | | ├── IndexController.java | | └── UsersController.java | └── service/ | └── UserService.java └── resources/ └── application.properties นี่คือไฟล์model / …
101 java  spring  mongodb  rest 


9
REST API นั้นเป็น RPC จริงหรือ Roy Fielding ดูเหมือนจะคิดอย่างนั้น
เห็นได้ชัดว่าสิ่งที่ฉันคิดว่ารู้เกี่ยวกับ REST จำนวนมากนั้นผิด - และฉันไม่ได้อยู่คนเดียว คำถามนี้มีโอกาสในการขายที่ยาวนาน แต่ดูเหมือนว่าจำเป็นเนื่องจากข้อมูลกระจัดกระจายไปเล็กน้อย คำถามจริงจะอยู่ในตอนท้ายหากคุณคุ้นเคยกับหัวข้อนี้แล้ว จากย่อหน้าแรกของREST APIของ Roy Fielding ต้องขับเคลื่อนด้วยไฮเปอร์เท็กซ์เป็นที่ชัดเจนว่าเขาเชื่อว่างานของเขาถูกตีความผิดอย่างกว้างขวาง: ฉันรู้สึกไม่สบายใจกับจำนวนคนที่เรียกใช้อินเตอร์เฟสที่ใช้ HTTP เป็น REST API ตัวอย่างเช่นวันนี้เป็นSocialSite REST API นั่นคือ RPC มันกรีดร้อง RPC มีคลัปบนจอแสดงผลมากจนควรได้รับคะแนน X Fielding จะแสดงรายการคุณลักษณะต่างๆของ REST API บางคนดูเหมือนจะขัดต่อแนวทางปฏิบัติทั่วไปและคำแนะนำทั่วไปใน SO และฟอรัมอื่น ๆ ตัวอย่างเช่น: ควรป้อน REST API โดยไม่มีความรู้มาก่อนนอกเหนือจาก URI เริ่มต้น (บุ๊กมาร์ก) และชุดประเภทสื่อมาตรฐานที่เหมาะสมกับผู้ชมที่ต้องการ (กล่าวคือลูกค้าที่อาจใช้ API คาดว่าจะเข้าใจ) ... REST API …
100 rest  hateoas 

8
วิธีที่เงียบสงบในการลบรายการจำนวนมาก
ในบทความวิกิสำหรับ REST ระบุว่าถ้าคุณใช้http://example.com/resources DELETE นั่นหมายความว่าคุณกำลังลบคอลเล็กชันทั้งหมด หากคุณใช้http://example.com/resources/7HOU57Y DELETE นั่นหมายความว่าคุณกำลังลบองค์ประกอบนั้น ฉันกำลังทำเว็บไซต์โปรดทราบว่าไม่ใช่บริการเว็บ ฉันมีรายการที่มีช่องทำเครื่องหมาย 1 ช่องสำหรับแต่ละรายการในรายการ เมื่อฉันเลือกหลายรายการเพื่อลบฉันจะอนุญาตให้ผู้ใช้กดปุ่มที่เรียกว่า DELETE SELECTION หากผู้ใช้กดปุ่มกล่องโต้ตอบ js จะปรากฏขึ้นเพื่อขอให้ผู้ใช้ยืนยันการลบ หากผู้ใช้ยืนยันรายการทั้งหมดจะถูกลบ ดังนั้นฉันจะจัดการกับการลบหลายรายการด้วยวิธี RESTFUL ได้อย่างไร? หมายเหตุในปัจจุบันสำหรับการลบในหน้าเว็บเป็นสิ่งที่ผมทำคือผมใช้แท็กรูปแบบที่มีการโพสต์เป็นกระทำ แต่รวมถึง _method ด้วยค่าลบตั้งแต่นี้เป็นสิ่งที่ถูกระบุโดยคนอื่น ๆ ใน SO กับวิธีการทำสงบลบสำหรับหน้าเว็บ
100 rest 

5
ลบหลายระเบียนโดยใช้ REST
REST-ful วิธีการลบหลายรายการคืออะไร? กรณีการใช้งานของฉันคือฉันมี Backbone Collection ซึ่งฉันต้องสามารถลบหลายรายการพร้อมกันได้ ตัวเลือกดูเหมือนจะเป็น: ส่งคำขอ DELETE สำหรับทุกๆระเบียน (ซึ่งดูเหมือนจะเป็นความคิดที่ไม่ดีหากมีหลายสิบรายการ) ส่ง DELETE โดยที่ ID ที่จะลบจะถูกรวมเข้าด้วยกันใน URL (เช่น "/ records / 1; 2; 3"); ด้วยวิธีที่ไม่ใช่ REST ให้ส่งออบเจ็กต์ JSON ที่กำหนดเองซึ่งมี ID ที่ทำเครื่องหมายสำหรับการลบ ตัวเลือกทั้งหมดน้อยกว่าอุดมคติ ดูเหมือนว่าจะเป็นพื้นที่สีเทาของการประชุม REST
100 api  rest  backbone.js 

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