อะไรคือความแตกต่างระหว่างระบบ REST และระบบที่ RESTful
จากบางสิ่งที่ฉันอ่านมากที่สุดบริการที่เรียกว่า REST เป็นบริการ RESTful จริง ๆ ดังนั้นความแตกต่างระหว่างสองคืออะไร
อะไรคือความแตกต่างระหว่างระบบ REST และระบบที่ RESTful
จากบางสิ่งที่ฉันอ่านมากที่สุดบริการที่เรียกว่า REST เป็นบริการ RESTful จริง ๆ ดังนั้นความแตกต่างระหว่างสองคืออะไร
คำตอบ:
Representational state transfer (REST)เป็นรูปแบบของสถาปัตยกรรมซอฟต์แวร์ ตามที่อธิบายในวิทยานิพนธ์โดย Roy Fielding REST เป็น "รูปแบบสถาปัตยกรรม" ที่ใช้ประโยชน์จากเทคโนโลยีและโปรโตคอลที่มีอยู่ของเว็บเป็นหลัก
RESTful มักใช้เพื่ออ้างถึงเว็บเซอร์วิสที่ใช้สถาปัตยกรรมดังกล่าว
architect
ของอะไร? ของ URL แบบhttps://translation.googleapis.com/language/translate/v2
นี้เป็นสไตล์ของ REST เหรอ?
เพื่อความแตกต่างหรือเปรียบเทียบทั้ง 2 คุณควรจะรู้ว่าสิ่งที่เป็นส่วนที่เหลือ
REST ( RE presentational S tate T ransfer) นั้นเป็นรูปแบบสถาปัตยกรรมของการพัฒนาที่มีหลักการบางอย่าง:
มันควรจะไร้สัญชาติ
ควรเข้าถึงทรัพยากรทั้งหมดจากเซิร์ฟเวอร์โดยใช้ URI เท่านั้น
มันไม่มีการเข้ารหัส inbuilt
มันไม่มีเซสชัน
มันใช้หนึ่งและเพียงหนึ่งโปรโตคอล - HTTP
สำหรับการดำเนินการ CRUD ก็ควรใช้ HTTP คำกริยาเช่นget
, post
, put
และdelete
ควรส่งคืนผลลัพธ์ในรูปแบบของ JSON หรือ XML, atom, OData เป็นต้น (ข้อมูลเบา)
REST based services
ปฏิบัติตามหลักการข้างต้นบางข้อและไม่ใช่ทั้งหมด
RESTFUL services
หมายความว่ามันเป็นไปตามหลักการข้างต้นทั้งหมด
มันคล้ายกับแนวคิดของ:
Object-based languages
รองรับแนวคิด OOP ทั้งหมดตัวอย่าง : C ++, C #
Object oriented languages
รองรับฟีเจอร์ OOPs บางตัวอย่าง : JavaScript, VB
ตัวอย่าง :
ASP Dot Net MVC 4 เป็นREST-Based
ในขณะที่ไมโครซอฟท์เว็บ API RESTFul
เป็น
MVC สนับสนุนหลักการ REST ข้างต้นเพียงบางส่วนในขณะที่ WEB API สนับสนุนหลักการ REST ข้างต้นทั้งหมด
MVC รองรับเฉพาะสิ่งต่อไปนี้จาก REST API
เราสามารถเข้าถึงทรัพยากรโดยใช้ URI
สนับสนุนกริยา HTTP เพื่อเข้าถึงทรัพยากรจากเซิร์ฟเวอร์
มันสามารถส่งคืนผลลัพธ์ในรูปแบบของ JSON, XML นั่นคือ HTTPResponse
อย่างไรก็ตามในเวลาเดียวกันใน MVC
เราสามารถใช้เซสชั่น
เราสามารถทำให้เป็นของรัฐ
เราสามารถส่งคืนวิดีโอหรือภาพจากวิธีการดำเนินการควบคุมซึ่งโดยทั่วไปเป็นการละเมิดหลักการ REST
นั่นคือเหตุผลที่ MVC คือREST-Based
ในขณะที่เว็บ API RESTFul
รองรับทุกหลักการข้างต้นและเป็น
"REST" เป็นกระบวนทัศน์ทางสถาปัตยกรรม "สงบ" อธิบายโดยใช้กระบวนทัศน์นั้น
architect
ของอะไร? ของ URL แบบhttps://translation.googleapis.com/language/translate/v2
นี้เป็นสไตล์ของ REST เหรอ?
ตามที่เจสันพูดในความคิดเห็น RESTful ใช้เพื่อเป็นคำคุณศัพท์เพื่ออธิบายสิ่งที่เคารพข้อ จำกัด ของ REST
REST ย่อมาจากการถ่ายโอนสถานะแบบแทน นั่นหมายความว่ารัฐจะไม่ถ่ายโอน แต่เป็นเพียงตัวแทนของมัน ตัวอย่างที่พบบ่อยที่สุดคือแอพที่ใช้เซิร์ฟเวอร์ HTML ล้วน (ไม่มีจาวาสคริปต์) เบราว์เซอร์ไม่รู้อะไรเกี่ยวกับแอปพลิเคชัน แต่ผ่านการเชื่อมโยงและทรัพยากรเซิร์ฟเวอร์สามารถถ่ายโอนสถานะของแอปพลิเคชันไปยังเบราว์เซอร์ โดยปกติปุ่มจะเปลี่ยนตัวแปรสถานะ (เช่นเปิดหน้าเว็บ) ในแอปพลิเคชัน windows ทั่วไปในเบราว์เซอร์คุณมีลิงก์ที่แสดงถึงการเปลี่ยนแปลงสถานะดังกล่าว
ความคิดคือการใช้สื่อสิ่งพิมพ์ และบางทีเพื่อสร้างประเภทสื่อสิ่งพิมพ์ใหม่ อาจเป็นไปได้ว่าเราสามารถขยายเบราว์เซอร์ด้วย javascript / AJAX และสร้างประเภทสื่อสิ่งพิมพ์ที่กำหนดเองใหม่ และเราจะมีแอปพลิเคชัน REST จริง
นี่เป็นรุ่นสั้น ๆ ของฉันเกี่ยวกับส่วนที่เหลือสำหรับปัญหาคือยากที่จะใช้งาน ฉันพูดอย่างสงบเป็นการส่วนตัวเมื่อฉันต้องการอ้างอิงถึงหลักการ REST แต่ฉันรู้ว่าฉันไม่ได้ใช้แนวคิดทั้งหมดของ REST เราไม่ได้พูดว่า SOAPful เพราะคุณใช้ SOAP หรือไม่ ฉันคิดว่าคนส่วนใหญ่ไม่ได้ทำ REST ตามที่จินตนาการไว้โดยผู้สร้าง Roy Fielding เราจริง ๆ แล้วใช้สถาปัตยกรรม RESTful หรือ RESTlike คุณสามารถดูวิทยานิพนธ์ของเขาและคุณจะพบตัวย่อ REST แต่ไม่ใช่คำว่า RESTful
REST เป็นรูปแบบของสถาปัตยกรรมซอฟต์แวร์สำหรับซอฟต์แวร์แบบกระจาย
การทำตามข้อ จำกัด ของ REST นั้นเรียกว่า 'สงบ'
ใช้มากในวันนี้เพื่อสร้างบริการเว็บเป็นทางเลือกแทนสบู่
ที่นี่คุณมีลิงค์เพื่อตรวจสอบ
http://en.wikipedia.org/wiki/Representational_State_Transfer
http://www.computerworld.com/s/article/297424/Representational_State_Transfer_REST_
http://www.ibm.com/developerworks/webservices/library/ws-restful/
ขอบคุณสำหรับคำตอบ อ่านบทความโดย Alex Rodriguez ซึ่งแสดงให้เห็นว่าบริการเว็บสงบมี 4 ลักษณะพื้นฐานคือ:
Representational State Transfer (REST) เป็นรูปแบบของสถาปัตยกรรมซอฟต์แวร์สำหรับระบบไฮเปอร์มีเดียแบบกระจายเช่นเวิลด์ไวด์เว็บ คำแนะนำการถ่ายโอนสถานะผู้แทนได้รับการแนะนำและกำหนดในปี 2000 โดย Roy Fielding 1 [2] ในวิทยานิพนธ์ระดับปริญญาเอกของเขา Fielding เป็นหนึ่งในผู้เขียนหลักของข้อกำหนดคุณสมบัติ Hypertext Transfer Protocol (HTTP) รุ่น 1.0 และ 1.1 การทำตามข้อ จำกัด ของ REST นั้นเรียกว่า 'สงบ' ที่มา: วิกิพีเดีย
บริการเว็บไซต์เป็นเว็บไซต์หลักที่มีการใช้เนื้อหาโดยโปรแกรมคอมพิวเตอร์ไม่ใช่ผู้คน REST เป็นชุดของหลักการสถาปัตยกรรมที่กำหนดว่าบริการเว็บควรใช้ประโยชน์สูงสุดจาก HTTP และมาตรฐานเว็บอื่น ๆ เพื่อให้โปรแกรมได้รับสิ่งที่ดีทั้งหมดที่ผู้คนสามารถออกไปจากเว็บได้ REST มักถูกเปรียบเทียบกับบริการเว็บ SOAP และบริการเว็บอื่น ๆ ที่เรียกว่า "การเรียกขั้นตอนระยะไกล"
การนำเสนอผลงานสเตฟาน Tilkov ของในส่วนที่เหลือที่ Parleys.com ค่อนข้างดีโดยเฉพาะอย่างยิ่งนี้
สำหรับหนังสือที่คุณไม่สามารถรับได้ดีกว่าชาร์ดสันและรูบี้พักผ่อน Web Services
บริการที่ใช้ REST เรียกว่า "RESTful service"
ที่มาฉันพึ่งพาการโพสต์ว่า: Dr.Dobbs Archive
API มี 4 ระดับที่กำหนดไว้ในโมเดลความสมบูรณ์ของ Richardson สิ่งเหล่านี้ถูกกำหนดเป็น:
ระดับ 0: ระบบใด ๆ ที่มีจุดปลายเดียวสำหรับ apis ทั้งหมด (SOAP หรือ RPC อยู่ในหมวดหมู่นี้) apis ระดับ 0 สามารถคล้ายกับ "คำสั่ง"
ระดับ 1: ระบบที่อธิบาย ResourceUri นี่คือระบบที่กำหนด URI ที่อิงเอนทิตีหลายแห่ง (แทนที่จะมีจุดปลายเดียวเหมือนระบบระดับ 0) URIs เหล่านี้สามารถใช้การกระทำ http ที่แตกต่างกัน (POST, GET, PUT, ฯลฯ ) เพื่อใช้การกระทำที่แตกต่างกับทรัพยากรนั้น
ระดับ 2: ระดับ 1 หรือการใช้เมธอด / กริยามาตรฐาน HTTP ที่สอดคล้องและการตอบสนองรหัสสถานะหลายรายการ
ระดับ 3: aka ระดับ 2 บวก HATEOAS (ไฮเปอร์มีเดียรวมอยู่ในการตอบกลับซึ่งอธิบายการโทรเพิ่มเติมที่คุณสามารถทำได้)
ในขณะที่ระดับ 1, ระดับ 2 และระดับ 3 ถือได้ว่าเป็นระบบ REST เฉพาะระดับที่เข้มงวด (aka ระดับ 2 และระดับ 3) เท่านั้นที่จะถือว่าเป็น RESTful
ดังนั้นโดยพื้นฐานแล้ว RESTful apis ทั้งหมดเป็น REST apis แต่ไม่ใช่ RIS apis ทั้งหมดจะเป็น RESTful
คิดว่า REST เป็น "คลาส" สถาปัตยกรรมในขณะที่ RESTful เป็น "อินสแตนซ์" ที่เป็นที่รู้จักกันดีของคลาสนั้น
โปรดคำนึงถึง ""; เราไม่ได้จัดการกับวัตถุการเขียนโปรแกรม "ของจริง" ที่นี่
"บริการ REST" และ "บริการ RESTful" เป็นบริการเดียวกัน
ระบบ RESTful คือระบบใด ๆ ที่ตามหลักการ REST ตามที่กำหนดไว้ในเอกสารต้นฉบับที่สร้างแนวคิดของแอปพลิเคชันเครือข่าย RESTfulเอกสารต้นฉบับที่สร้างความคิดของการใช้งานเครือข่ายสงบ
เป็นที่น่าสังเกตว่ามีระดับความสงบที่แตกต่างกันไป โดยรวมแล้ว REST เป็นสไตล์ไม่ใช่มาตรฐานดังนั้นจึงมีที่ว่างสำหรับการตีความตามความต้องการ ตัวอย่างหนึ่งคือ URL ทรัพยากรแบบลำดับชั้น (เช่น/things/ID/relatedthings
) vs URL แบบแบน (เช่น/things/ID
และ/relatedthings?thing=ID
)
REST (REpresentation State Transfer) เป็นสถาปัตยกรรมที่ใช้สร้าง WebServices
และ
RESTful เป็นวิธีการเขียนบริการโดยใช้สถาปัตยกรรม REST บริการ RESTful จะเปิดเผยทรัพยากรเพื่อระบุเป้าหมายที่จะโต้ตอบกับลูกค้า
REST เป็นรูปแบบสถาปัตยกรรมสำหรับการสร้างบริการเว็บ บริการ RESTful เป็นบริการที่ใช้รูปแบบนั้น