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

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

12
ข้อผิดพลาด REST API คืนแนวทางปฏิบัติที่ดี [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา ฉันกำลังมองหาคำแนะนำเกี่ยวกับแนวทางปฏิบัติที่ดีเมื่อต้องส่งคืนข้อผิดพลาดจาก REST API ฉันกำลังทำงานกับ API ใหม่เพื่อให้ฉันสามารถทิศทางใดก็ได้ในขณะนี้ ประเภทเนื้อหาของฉันคือ XML ในขณะนี้ แต่ฉันวางแผนที่จะสนับสนุน JSON ในอนาคต ตอนนี้ฉันกำลังเพิ่มข้อผิดพลาดบางอย่างเช่นลูกค้าพยายามเพิ่มทรัพยากรใหม่ แต่มีโควต้าการจัดเก็บข้อมูลเกิน ฉันกำลังจัดการกรณีข้อผิดพลาดบางอย่างด้วยรหัสสถานะ HTTP (401 สำหรับการตรวจสอบสิทธิ์, 403 สำหรับการให้สิทธิ์และ 404 สำหรับคำขอที่ไม่ดีธรรมดา) ฉันตรวจดูรหัสข้อผิดพลาด HTTP ที่มีความสุข แต่ไม่มีช่วง 400-417 ที่ดูเหมือนจะถูกรายงานข้อผิดพลาดเฉพาะแอปพลิเคชัน ดังนั้นในตอนแรกฉันถูกล่อลวงให้ส่งคืนข้อผิดพลาดแอปพลิเคชันของฉันด้วย 200 OK และ XML ที่ระบุเฉพาะ (เช่นจ่ายเงินให้เรามากขึ้นและคุณจะได้รับพื้นที่เก็บข้อมูลที่คุณต้องการ!) แต่ฉันหยุดคิดเกี่ยวกับมัน ยักด้วยความกลัว) นอกจากนี้ฉันรู้สึกว่าฉันแบ่งการตอบสนองข้อผิดพลาดออกเป็นกรณีที่แตกต่างกันเนื่องจากบางรายการเป็นรหัสสถานะ HTTP ที่ขับเคลื่อนด้วยและอื่น ๆ เป็นเนื้อหาที่ขับเคลื่อน ดังนั้นคำแนะนำอุตสาหกรรมคืออะไร? …
623 web-services  http  rest 

10
ทำความเข้าใจกับ REST: คำกริยารหัสข้อผิดพลาดและการตรวจสอบความถูกต้อง
ฉันกำลังมองหาวิธีห่อ APIs รอบฟังก์ชั่นเริ่มต้นในแอปพลิเคชันเว็บที่ใช้ PHP ฐานข้อมูลและ CMS ของฉัน ฉันได้ดูไปรอบ ๆ และพบกรอบ "โครงกระดูก" หลายแห่ง นอกจากคำตอบในคำถามของฉันแล้วยังมีTonicกรอบ REST ที่ฉันชอบเพราะมันมีน้ำหนักเบามาก ฉันชอบ REST ที่ดีที่สุดสำหรับความเรียบง่ายและต้องการสร้างสถาปัตยกรรม API ตามนั้น ฉันพยายามเข้าใจหลักการพื้นฐานและยังไม่เข้าใจอย่างถ่องแท้ ดังนั้นคำถามจำนวนหนึ่ง 1. ฉันเข้าใจถูกต้องหรือไม่ บอกว่าฉันมีทรัพยากร "ผู้ใช้" ฉันสามารถตั้งค่า URIs ได้หลายอย่างเช่น: /api/users when called with GET, lists users /api/users when called with POST, creates user record /api/users/1 when called with GET, shows …
602 web-services  rest 

15
ความแตกต่างระหว่าง REST & RESTful คืออะไร
อะไรคือความแตกต่างระหว่างระบบ REST และระบบที่ RESTful จากบางสิ่งที่ฉันอ่านมากที่สุดบริการที่เรียกว่า REST เป็นบริการ RESTful จริง ๆ ดังนั้นความแตกต่างระหว่างสองคืออะไร
540 architecture  rest 

16
หากแอปพลิเคชัน REST ควรไร้สถานะคุณจะจัดการเซสชันได้อย่างไร
ฉันต้องการคำอธิบายบางอย่าง ฉันอ่านเกี่ยวกับ REST และสร้างแอปพลิเคชัน RESTful แล้ว ตามที่วิกิพีเดีย REST ตัวเองจะถูกกำหนดให้เป็นรัฐ Representational การถ่ายโอน ฉันไม่เข้าใจgobbledeygookไร้สัญชาติทั้งหมดนี้ที่ทุกคนคอยพ่น จากวิกิพีเดีย: ในเวลาใดก็ได้ลูกค้าสามารถอยู่ระหว่างการเปลี่ยนสถานะแอปพลิเคชันหรือ "หยุดพัก" ไคลเอนต์ในสถานะพักสามารถโต้ตอบกับผู้ใช้ แต่สร้างไม่โหลดและใช้ไม่มีการจัดเก็บต่อไคลเอนต์บนชุดของเซิร์ฟเวอร์หรือบนเครือข่าย พวกเขากำลังบอกว่าอย่าใช้แหล่งข้อมูลระดับ / แอปพลิเคชันหรือไม่ ฉันได้รับเป้าหมายอย่างหนึ่งของ REST คือทำให้ URI เข้าถึงได้อย่างสอดคล้องและพร้อมใช้งานตัวอย่างเช่นแทนที่จะซ่อนคำขอเพจไว้ในโพสต์ทำให้หมายเลขหน้าของคำขอเป็นส่วนหนึ่งของ GET URI ทำให้รู้สึกถึงฉัน แต่ดูเหมือนว่ามันกำลังเกินเหตุโดยบอกว่าไม่ควรมีการจัดเก็บข้อมูลฝั่งไคลเอ็นต์ (ข้อมูลเซสชัน) ถ้าฉันมีคิวของข้อความและผู้ใช้ของฉันต้องการอ่านข้อความ แต่เมื่อเขาอ่านพวกเขาต้องการบล็อกข้อความของผู้ส่งบางข้อความที่ผ่านมาในช่วงเวลาของเซสชันของเขา? การเก็บสิ่งนี้ไว้ในสถานที่บนฝั่งเซิร์ฟเวอร์หรือไม่และทำให้เซิร์ฟเวอร์ส่งข้อความ (หรือรหัสข้อความ) ที่ผู้ใช้ไม่ได้บล็อกเท่านั้น ฉันต้องส่งรายชื่อผู้ส่งข้อความทั้งหมดเพื่อปิดกั้นทุกครั้งที่ขอรายการข้อความใหม่หรือไม่ รายการข้อความที่เกี่ยวข้องกับฉันจะไม่ / ไม่ควรเป็นทรัพยากรสาธารณะที่มีอยู่ในสถานที่แรก .. อีกครั้งเพียงพยายามที่จะเข้าใจสิ่งนี้ มีคนโปรดอธิบาย ปรับปรุง: ฉันได้พบคำถามล้นล้นที่มีคำตอบที่ไม่ได้รับฉันไปที่นั่น: วิธีการจัดการสถานะในส่วนที่เหลือ ซึ่งบอกว่ารัฐลูกค้าที่มีความสำคัญควรทั้งหมดจะถูกโอนในทุกคำขอ .... Ugg .. ดูเหมือนว่าค่าใช้จ่ายจำนวนมาก …

22
แบบแผน REST URI - ชื่อทรัพยากรเอกพจน์หรือพหูพจน์ขณะสร้าง
ฉันยังใหม่กับ REST และฉันสังเกตเห็นว่าในบริการ RESTful บางอย่างพวกเขาใช้ URI ทรัพยากรที่แตกต่างกันสำหรับการอัปเดต / รับ / ลบและสร้าง เช่น การสร้าง - การใช้/ ทรัพยากรด้วยวิธีการ POST (สังเกตพหูพจน์) ในบางสถานที่การใช้/ ทรัพยากร (เอกพจน์) ปรับปรุง - ใช้/ ทรัพยากร / 123ด้วยวิธีการ PUT รับ - การใช้/ ทรัพยากร / 123ด้วยวิธีการ GET ฉันสับสนเล็กน้อยเกี่ยวกับแผนการตั้งชื่อ URI นี้ เราควรใช้พหูพจน์หรือเอกพจน์เพื่อสร้างทรัพยากรอะไร เกณฑ์ที่ควรตัดสินใจในขณะนั้นคืออะไร

4
อะไรคือข้อแตกต่างระหว่าง text / xml กับ application / xml สำหรับการตอบกลับของเว็บเซอร์
นี้มีมากขึ้นของคำถามทั่วไปเกี่ยวกับความแตกต่างระหว่างและtext/xml application/xmlฉันค่อนข้างใหม่ในการเขียน webservices (REST - Jersey) ฉันได้ผลิตapplication/xmlเพราะมันเป็นสิ่งที่ปรากฏในบทเรียนส่วนใหญ่ / ตัวอย่างรหัสที่ฉันได้ใช้ในการเรียนรู้ แต่เมื่อเร็ว ๆ นี้ฉันค้นพบเกี่ยวกับtext/xmlและสงสัยว่าสิ่งที่แตกต่างเกี่ยวกับมันและเมื่อไหร่ที่คุณจะใช้มันapplication/xml?
495 xml  rest  jersey 

7
การประชุมเป็นการละเมิด RESTfulness จริง ๆ หรือไม่?
การใช้เซสชันใน RESTful API เป็นการละเมิด RESTfulness หรือไม่ ฉันได้เห็นความคิดเห็นมากมายไปในทิศทางใดทิศทางหนึ่ง แต่ฉันไม่มั่นใจว่าช่วงการประชุมนั้นสงบเงียบ จากมุมมองของฉัน: ไม่รับรองความถูกต้องสำหรับ RESTfulness (ไม่เช่นนั้นจะมีการใช้งานเล็กน้อยในบริการ RESTful) การตรวจสอบความถูกต้องจะกระทำโดยการส่งโทเค็นการตรวจสอบความถูกต้องในคำขอโดยปกติจะเป็นส่วนหัว โทเค็นการรับรองความถูกต้องนี้จะต้องได้รับอย่างใดและอาจถูกเพิกถอนซึ่งในกรณีนี้จะต้องมีการต่ออายุ โทเค็นการตรวจสอบความถูกต้องจะต้องมีการตรวจสอบโดยเซิร์ฟเวอร์ (มิฉะนั้นจะไม่ได้รับการตรวจสอบ) ดังนั้นเซสชันจะละเมิดสิ่งนี้อย่างไร ฝั่งไคลเอ็นต์เซสชันจะรับรู้โดยใช้คุกกี้ คุกกี้เป็นเพียงส่วนหัว HTTP พิเศษ คุกกี้เซสชันสามารถรับและเพิกถอนได้ตลอดเวลา คุกกี้เซสชั่นสามารถมีชีวิตที่ไม่มีที่สิ้นสุดถ้าจำเป็น รหัสเซสชัน (โทเค็นการตรวจสอบความถูกต้อง) ได้รับการตรวจสอบความถูกต้องของฝั่งเซิร์ฟเวอร์ คุกกี้เซสชันนั้นเหมือนกับกลไกการตรวจสอบความถูกต้อง HTTP ส่วนหัวอื่น ๆ ยกเว้นว่าจะใช้Cookieส่วนหัวแทนAuthorizationส่วนหัวกรรมสิทธิ์อื่น ๆ หากไม่มีการเชื่อมต่อเซสชันกับฝั่งเซิร์ฟเวอร์ค่าคุกกี้เหตุใดจึงทำให้เกิดความแตกต่าง การใช้งานฝั่งเซิร์ฟเวอร์ไม่จำเป็นต้องเกี่ยวข้องกับไคลเอนต์ตราบใดที่เซิร์ฟเวอร์ทำงาน RESTful ดังนั้นคุกกี้ด้วยตัวเองไม่ควรทำ API RESTlessและเซสชันเป็นเพียงคุกกี้ให้กับลูกค้า สมมติฐานของฉันผิดหรือเปล่า? อะไรที่ทำให้เซสชันคุกกี้ไม่สงบ ?

22
การตั้งค่าส่วนหัวการอนุญาตของ HttpClient
ฉันมี HttpClient ที่ฉันใช้สำหรับ REST API อย่างไรก็ตามฉันมีปัญหาในการตั้งค่าส่วนหัวการอนุญาต ฉันต้องตั้งส่วนหัวเป็นโทเค็นที่ฉันได้รับจากการทำตามคำขอ OAuth ของฉัน ฉันเห็นรหัสสำหรับ. NET ที่แนะนำสิ่งต่อไปนี้ httpClient.DefaultRequestHeaders.Authorization = new Credential(OAuth.token); อย่างไรก็ตามคลาส Credential ไม่มีอยู่ใน WinRT ใครมีแนวคิดใดบ้างที่จะตั้งค่าหัวข้อการให้สิทธิ์

6
ขีดกลางขีดเส้นใต้หรือ camelCase เป็นตัวคั่นคำใน URIs
ฉันกำลังออกแบบ API บน HTTP สำหรับแอปอินทราเน็ต ฉันรู้ว่ามันเป็นข้อกังวลเล็ก ๆ น้อย ๆ ในรูปแบบที่ยิ่งใหญ่ของสิ่งต่าง ๆ แต่: ฉันควรใช้ยัติภังค์, ขีดล่าง, หรือ camelCase เพื่อคั่นคำใน URIs หรือไม่? นี่คือความคิดเริ่มต้นของฉัน: CamelCase ปัญหาที่เป็นไปได้หากเซิร์ฟเวอร์ไม่คำนึงถึงขนาดตัวพิมพ์ ดูเหมือนว่าจะมีการใช้งานอย่างแพร่หลายในคีย์สตริงข้อความค้นหา ( http://api.example.com ? searchQuery = ... ) แต่ไม่ใช่ในส่วนอื่น ๆ ของ URI ยัติภังค์ ชื่นชอบสุนทรียภาพมากกว่าทางเลือกอื่น ดูเหมือนว่าจะใช้กันอย่างแพร่หลายในส่วนของเส้นทางของ URI ไม่เคยเห็นคีย์สตริงข้อความค้นหาที่มีการใส่ยัติภังค์ในป่า อาจดีกว่าสำหรับ SEO (นี่อาจเป็นตำนาน) ขีด อาจง่ายกว่าสำหรับภาษาโปรแกรมที่จะจัดการ API ยอดนิยมหลายแห่ง (Facebook, Netflix, StackExchange ฯลฯ …
476 api  url  rest  uri  restful-url 

2
แนวปฏิบัติที่เหมาะสมที่สุดสำหรับการพิสูจน์ตัวตนโทเค็น REST ด้วย JAX-RS และ Jersey
ฉันกำลังมองหาวิธีการเปิดใช้งานการรับรองความถูกต้องใช้โทเค็นในเจอร์ซีย์ ฉันพยายามไม่ใช้เฟรมเวิร์กเฉพาะใด ๆ เป็นไปได้ไหม แผนของฉันคือ: ผู้ใช้สมัครใช้บริการเว็บของฉันบริการเว็บของฉันสร้างโทเค็นส่งไปยังลูกค้าและลูกค้าจะเก็บไว้ จากนั้นลูกค้าสำหรับแต่ละคำขอจะส่งโทเค็นแทนชื่อผู้ใช้และรหัสผ่าน ฉันคิดว่าจะใช้ตัวกรองที่กำหนดเองสำหรับแต่ละคำขอ@PreAuthorize("hasRole('ROLE')") แต่ฉันคิดว่านี่เป็นสาเหตุทำให้มีคำขอจำนวนมากไปยังฐานข้อมูลเพื่อตรวจสอบว่าโทเค็นนั้นถูกต้องหรือไม่ หรือไม่สร้างตัวกรองและในแต่ละคำขอจะใส่โทเค็นพารามิเตอร์หรือไม่ เพื่อให้แต่ละ API ตรวจสอบโทเค็นก่อนและหลังจากดำเนินการบางอย่างเพื่อดึงทรัพยากร

11
การจับพารามิเตอร์ URL ในคำขอ GET
ขณะนี้ฉันกำลังกำหนดนิพจน์ทั่วไปเพื่อจับพารามิเตอร์ใน url ดังอธิบายในบทช่วยสอน ฉันจะเข้าถึงพารามิเตอร์จาก url เป็นส่วนหนึ่งของHttpRequestวัตถุได้อย่างไร HttpRequest.GETปัจจุบันฉันส่งคืนQueryDictวัตถุว่างเปล่า ฉันต้องการเรียนรู้วิธีการทำสิ่งนี้โดยไม่ต้องมีห้องสมุดเพื่อให้ฉันได้รู้จัก Django ดีขึ้น
459 django  url  rest 

7
วิธีออกแบบการค้นหา / กรอง RESTful [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา ขณะนี้ฉันกำลังออกแบบและใช้งาน RESTful API ใน PHP อย่างไรก็ตามฉันไม่ประสบความสำเร็จในการนำการออกแบบเริ่มต้นไปใช้ GET /users # list of users GET /user/1 # get user with id 1 POST /user # create new user PUT /user/1 # modify user with id 1 DELETE /user/1 # delete user with id 1 จนถึงมาตรฐานสวยใช่มั้ย …
457 api  search  rest  filter 

7
HTTP POST พร้อมพารามิเตอร์การสืบค้น URL - เป็นความคิดที่ดีหรือไม่? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา ฉันกำลังออกแบบ API ให้ใช้งาน HTTP และฉันสงสัยว่าถ้าใช้คำสั่ง HTTP POST แต่ด้วยพารามิเตอร์การสืบค้น URL เท่านั้นและไม่มีเนื้อหาคำขอเป็นวิธีที่ดี การพิจารณา: "การออกแบบเว็บที่ดี" ต้องมีการดำเนินการที่ไม่ใช่ idempotent ผ่านทาง POST นี่คือการกระทำที่ไม่ใช่ idempotent การพัฒนาและแก้ไขข้อบกพร่องของแอปนี้ง่ายขึ้นเมื่อมีพารามิเตอร์คำขออยู่ใน URL API ไม่ได้มีไว้สำหรับใช้อย่างแพร่หลาย ดูเหมือนว่าการร้องขอ POST โดยไม่มีเนื้อหาจะทำงานได้อีกเล็กน้อยเช่นContent-Length: 0ส่วนหัวจะต้องเพิ่มอย่างชัดเจน สำหรับฉันแล้วดูเหมือนว่า POST ที่ไม่มีร่างกายนั้นนับว่าตอบสนองต่อความคาดหวังของนักพัฒนาและ HTTP Framework ส่วนใหญ่ มีข้อผิดพลาดหรือข้อได้เปรียบเพิ่มเติมอีกหรือไม่ในการส่งพารามิเตอร์ในคำขอ POST ผ่านการสืบค้น URL แทนที่จะเป็นเนื้อหาคำขอ แก้ไข: เหตุผลที่อยู่ระหว่างการพิจารณาคือการดำเนินการไม่ใช่ idempotent และมีผลข้างเคียงอื่นนอกเหนือจากการดึงข้อมูล ดูข้อมูลจำเพาะ HTTP …
451 rest  http 


10
ออกจากระบบ: GET หรือ POST
คำถามนี้ไม่เกี่ยวกับเวลาที่จะใช้ GET หรือ POST โดยทั่วไป มันเป็นเรื่องที่แนะนำสำหรับการจัดการการออกจากระบบเว็บแอพพลิเคชัน ฉันพบข้อมูลมากมายเกี่ยวกับความแตกต่างระหว่าง GET และ POST ในแง่ทั่วไป แต่ฉันไม่พบคำตอบที่ชัดเจนสำหรับสถานการณ์นี้ ในฐานะนักปฏิบัตินิยมฉันมีแนวโน้มที่จะใช้ GET เพราะการนำไปใช้นั้นง่ายกว่า POST เพียงวางลิงค์ง่าย ๆ เสร็จแล้ว ดูเหมือนจะเป็นเช่นนี้กับเว็บไซต์ส่วนใหญ่ที่ฉันนึกถึงอย่างน้อยก็จากส่วนบนสุดของหัว แม้แต่ Stack Overflow จัดการออกจากระบบด้วย GET สิ่งที่ทำให้ฉันลังเลคืออาร์กิวเมนต์ (ถึงแม้ว่าจะเก่า) ที่บางส่วนของตัวเร่งความเร็วเว็บ / พร็อกซีหน้าล่วงหน้าแคชโดยการไปและดึงทุกลิงก์ที่พบในหน้าดังนั้นผู้ใช้จะได้รับการตอบสนองที่เร็วขึ้นเมื่อเธอคลิกที่พวกเขา ฉันไม่แน่ใจว่าสิ่งนี้ยังคงใช้อยู่หรือไม่ แต่ถ้าเป็นเช่นนั้นในทางทฤษฎีแล้วผู้ใช้ที่มีส่วนช่วยเร่งหนึ่งในนั้นจะถูกขับออกจากแอปพลิเคชันทันทีที่เธอลงชื่อเข้าใช้เพราะตัวเร่งความเร็วของเธอจะค้นหาและดึงข้อมูลออกจากระบบ ลิงค์แม้ว่าเธอจะไม่เคยคลิก ทุกอย่างที่ฉันได้อ่านเพื่อให้ห่างไกลชี้ให้เห็นว่าการโพสต์ควรจะใช้สำหรับ "การกระทำการทำลายล้าง" ในขณะที่การกระทำที่ไม่เปลี่ยนสภาวะภายในของแอพลิเคชันเหมือนสอบถามและ such- ควรจะจัดการกับ GET จากนี้คำถามจริงที่นี่คือ: การออกจากระบบของแอปพลิเคชันถือเป็นการกระทำที่เป็นการทำลายหรือไม่หรือเป็นการเปลี่ยนแปลงสถานะภายในของแอปพลิเคชัน
434 architecture  rest  post  get 

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