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

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

13
การแบ่งหน้าในเว็บแอ็พพลิเคชัน REST
นี่คือการปฎิรูปทั่วไปของคำถามนี้ (ด้วยการกำจัดส่วนเฉพาะของ Rails) ฉันไม่แน่ใจว่าจะใช้การแบ่งหน้าในแหล่งข้อมูลในเว็บแอปพลิเคชัน RESTful ได้อย่างไร สมมติว่าฉันมีทรัพยากรที่เรียกว่าproductsสิ่งใดต่อไปนี้ที่คุณคิดว่าเป็นแนวทางที่ดีที่สุดและทำไม: 1. ใช้สตริงข้อความค้นหาเท่านั้น เช่น. http://application/products?page=2&sort_by=date&sort_how=asc ปัญหาที่นี่คือฉันไม่สามารถใช้การแคชแบบเต็มหน้าและ URL ไม่สะอาดและง่ายต่อการจดจำ 2. การใช้หน้าเป็นทรัพยากรและสตริงแบบสอบถามสำหรับการเรียงลำดับ เช่น. http://application/products/page/2?sort_by=date&sort_how=asc ในกรณีนี้ปัญหาที่เห็นคือhttp://application/products/pages/1ไม่ได้เป็นทรัพยากรที่ไม่ซ้ำกันเนื่องจากการใช้sort_by=priceสามารถให้ผลลัพธ์ที่แตกต่างกันโดยสิ้นเชิงและฉันยังไม่สามารถใช้การแคชหน้า 3. การใช้หน้าเป็นทรัพยากรและส่วน URL สำหรับการเรียงลำดับ เช่น. http://application/products/by-date/page/2 ฉันเองเห็นว่าไม่มีปัญหาในการใช้วิธีนี้ แต่มีคนเตือนฉันว่านี่ไม่ใช่วิธีที่ดีที่จะไป (เขาไม่ได้ให้เหตุผลดังนั้นถ้าคุณรู้ว่าทำไมมันถึงไม่แนะนำกรุณาแจ้งให้เราทราบ) ใด ๆข้อเสนอแนะความคิดเห็นวิพากษ์วิจารณ์มากกว่าการต้อนรับ ขอบคุณ
329 rest  sorting  pagination 

16
ข้อเสนอแนะของ Python REST (บริการบนเว็บ) [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้มีแนวโน้มที่จะเรียกร้องการอภิปรายการโต้แย้งการหยั่งเสียงหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา ล็อคแล้ว คำถามและคำตอบนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ มีรายการแนะนำบางส่วนของกรอบงาน REST แบบ Python ที่แตกต่างกันสำหรับใช้บนเซิร์ฟเวอร์เพื่อเขียน RESTful API ของคุณเองหรือไม่? โดยเฉพาะอย่างยิ่งกับข้อดีและข้อเสีย โปรดเพิ่มคำแนะนำได้ที่นี่ :)

12
เรียก REST API ใน PHP
ลูกค้าของเราให้ REST API แก่ฉันซึ่งฉันจำเป็นต้องโทรหา PHP แต่แท้จริงแล้วเอกสารที่ให้มากับ API นั้นมี จำกัด มากดังนั้นฉันจึงไม่รู้วิธีเรียกใช้บริการ ฉันได้ลองใช้ Google แล้ว แต่สิ่งเดียวที่เกิดขึ้นคือ Yahoo! หมดอายุแล้ว การสอนเกี่ยวกับวิธีการบริการ ไม่พูดถึงส่วนหัวหรือข้อมูลเชิงลึกใด ๆ มีข้อมูลที่เหมาะสมเกี่ยวกับวิธีเรียก REST API หรือเอกสารบางอย่างเกี่ยวกับมันหรือไม่? เพราะแม้แต่ใน W3schools พวกเขาก็อธิบายวิธีการ SOAP เท่านั้น ตัวเลือกในการสร้าง API พักผ่อนใน PHP แตกต่างกันอย่างไร
317 php  web-services  api  rest 

12
HTTP และ REST ต่างกันอย่างไร
หลังจากอ่านมากเกี่ยวกับความแตกต่างระหว่าง REST และ SOAP ฉันได้รับความประทับใจว่า REST เป็นอีกคำสำหรับ HTTP บางคนสามารถอธิบายว่า REST เพิ่มฟังก์ชันการทำงานให้กับ HTTP ได้อย่างไร หมายเหตุ : ฉันไม่ได้มองหาการเปรียบเทียบ REST กับ SOAP อัปเดต : ขอบคุณสำหรับคำตอบของคุณ ตอนนี้เป็นที่ชัดเจนสำหรับฉันว่า REST เป็นเพียงชุดของกฎเกี่ยวกับวิธีการใช้ HTTP ดังนั้นฉันโพสต์ติดตามเกี่ยวกับข้อดีของการประชุมเหล่านี้คืออะไร หมายเหตุ : ตอนนี้ฉันเข้าใจความหมายของ REST แล้ว ตามที่Emil Ivanovกล่าวไว้ REST หมายถึงการใช้ HTTP อย่างที่ควรจะเป็น อย่างไรก็ตามฉันไม่แน่ใจว่าสิ่งนี้สมควรได้รับเทอมของตัวเองหรือไม่
303 http  rest 

7
อะไรคือแนวปฏิบัติที่ดีที่สุดสำหรับทรัพยากรที่ซ้อนกัน REST
เท่าที่ฉันสามารถบอกได้ว่าทรัพยากรแต่ละรายการควรมีเพียงเส้นทางเดียวเท่านั้น ดังนั้นในตัวอย่างต่อไปนี้รูปแบบ URL ที่ดีจะเป็นอย่างไร ยกตัวอย่างการเป็นตัวแทน บริษัท ที่เหลือ ในตัวอย่างสมมุตินี้แต่ละ บริษัทเป็นเจ้าของ 0 หรือมากกว่าแผนกและแต่ละแผนกเป็นเจ้าของ 0 หรือมากกว่าพนักงาน แผนกไม่สามารถอยู่ได้หากไม่มี บริษัท ที่เกี่ยวข้อง พนักงานไม่สามารถอยู่ได้หากไม่มีแผนกที่เกี่ยวข้อง ทีนี้ฉันก็พบว่ารูปแบบของทรัพยากรนั้นเป็นตัวแทนของธรรมชาติ /companies ชุดของ บริษัท - ยอมรับการจัดตั้ง บริษัท ใหม่ รับทั้งชุด /companies/{companyId}บริษัท เอกชน ยอมรับ GET, PUT และ DELETE /companies/{companyId}/departmentsยอมรับ POST สำหรับรายการใหม่ (สร้างแผนกภายใน บริษัท ) /companies/{companyId}/departments/{departmentId}/ /companies/{companyId}/departments/{departmentId}/employees /companies/{companyId}/departments/{departmentId}/employees/{empId} ด้วยข้อ จำกัด ในแต่ละส่วนฉันรู้สึกว่ามันสมเหตุสมผลถ้าซ้อนกันลึกลงไปเล็กน้อย อย่างไรก็ตามความยากลำบากของฉันเกิดขึ้นถ้าฉันต้องการแสดงรายการ ( GET) พนักงานทุกคนในทุก บริษัท …
301 rest  api-design 

4
วิธีใช้ cURL เพื่อส่งคุกกี้
ฉันอ่านแล้วว่าส่งคุกกี้ด้วย curlใช้ได้ แต่ไม่ใช่สำหรับฉัน ฉันมีRESTจุดสิ้นสุดเป็น: class LoginResource(restful.Resource): def get(self): print(session) if 'USER_TOKEN' in session: return 'OK' return 'not authorized', 401 เมื่อฉันพยายามเข้าถึงเป็น: curl -v -b ~/Downloads/cookies.txt -c ~/Downloads/cookies.txt http://127.0.0.1:5000/ * About to connect() to 127.0.0.1 port 5000 (#0) * Trying 127.0.0.1... * connected * Connected to 127.0.0.1 (127.0.0.1) port 5000 (#0) > …

11
การแบ่งหน้า API ที่ดีที่สุด
ฉันชอบความช่วยเหลือในการจัดการเคสขอบแปลก ๆ ด้วย API ที่ฉันสร้างขึ้น เช่นเดียวกับ API จำนวนมากอันนี้แบ่งหน้าผลลัพธ์ขนาดใหญ่ หากคุณสอบถาม / foos คุณจะได้รับ 100 ผลลัพธ์ (เช่น foo # 1-100) และลิงก์ไปยัง / foos? page = 2 ซึ่งควรส่งคืน foo # 101-200 น่าเสียดายที่หาก foo # 10 ถูกลบออกจากชุดข้อมูลก่อนที่ผู้บริโภค API จะทำการสืบค้นต่อไป / foos? page = 2 จะชดเชย 100 และส่งกลับ foos # 102-201 ปัญหานี้เป็นปัญหาสำหรับผู้ใช้ API ที่พยายามดึง foos …

7
วิธีจัดการกับความสัมพันธ์แบบหลายต่อหลายคนใน RESTful API
ลองนึกภาพคุณมีเอนทิตี้ 2 แบบคือผู้เล่นและทีมซึ่งผู้เล่นสามารถอยู่ในหลาย ๆ ทีม ในแบบจำลองข้อมูลของฉันฉันมีตารางสำหรับแต่ละเอนทิตีและตารางเข้าร่วมเพื่อรักษาความสัมพันธ์ การจำศีลทำได้ดีในการจัดการสิ่งนี้ แต่ฉันจะเปิดเผยความสัมพันธ์นี้ใน RESTful API ได้อย่างไร ฉันสามารถคิดได้หลายวิธี ก่อนอื่นฉันอาจให้เอนทิตีแต่ละรายการมีรายการอื่น ๆ ดังนั้นวัตถุ Player จะมีรายชื่อทีมเป็นของมันและวัตถุแต่ละทีมจะมีรายชื่อผู้เล่นที่เป็นของมัน ดังนั้นในการเพิ่มผู้เล่นในทีมคุณเพียงแค่โพสต์การเป็นตัวแทนของผู้เล่นไปยังจุดสิ้นสุดบางอย่างเช่น POST /playerหรือ POST ที่/teamมีวัตถุที่เหมาะสมเป็นภาระของคำขอ ดูเหมือนว่า "สงบ" ที่สุดสำหรับฉัน แต่รู้สึกแปลก ๆ เล็กน้อย /api/team/0: { name: 'Boston Celtics', logo: '/img/Celtics.png', players: [ '/api/player/20', '/api/player/5', '/api/player/34' ] } /api/player/20: { pk: 20, name: 'Ray Allen', birth: …

21
วิธีการโพสต์ดิบ JSON ทั้งหมดในเนื้อความของคำขอการติดตั้งเพิ่ม?
อาจมีการถามคำถามนี้ก่อนหน้านี้ แต่ไม่ได้รับคำตอบอย่างชัดเจน หนึ่งโพสต์ดิบทั้งหมดของ JSON ภายในเนื้อความของคำขอการติดตั้งเพิ่มยังไง? ดูคำถามที่คล้ายกันที่นี่ หรือเป็นคำตอบที่ถูกต้องนี้ว่ามันจะต้องมีรูปแบบเข้ารหัส URL และผ่านการเป็นเขตข้อมูล ? ฉันหวังว่าจะไม่จริง ๆ เพราะบริการที่ฉันกำลังเชื่อมต่ออยู่นั้นคาดหวังว่าจะมี JSON แบบดิบในเนื้อหาของโพสต์ พวกเขาไม่ได้ตั้งค่าให้ค้นหาเขตข้อมูลเฉพาะสำหรับข้อมูล JSON ฉันแค่อยากจะอธิบายเรื่องนี้ให้ฟังด้วยซ้ำทุกครั้ง มีคนหนึ่งตอบว่าไม่ต้องใช้ชุดติดตั้งเพิ่ม อื่น ๆ ไม่แน่ใจของไวยากรณ์ อีกคนคิดว่าใช่มันสามารถทำได้ แต่เฉพาะเมื่อมีการเข้ารหัสรูปแบบ URL และวางในฟิลด์ (นั่นไม่ใช่กรณีที่ฉันยอมรับ) ไม่ฉันไม่สามารถกำหนดรหัสบริการทั้งหมดใหม่สำหรับไคลเอนต์ Android ของฉันได้ และใช่มันเป็นเรื่องธรรมดามากในโครงการสำคัญ ๆ ที่จะโพสต์ JSON แบบ raw แทนที่จะส่งผ่านเนื้อหา JSON เป็นค่าคุณสมบัติของฟิลด์ มาทำให้ถูกต้องแล้วเดินต่อไป บางคนสามารถชี้ไปที่เอกสารหรือตัวอย่างที่แสดงวิธีการนี้ได้หรือไม่ หรือระบุเหตุผลที่ถูกต้องว่าทำไมจึงไม่สามารถทำได้ / ไม่ควรทำ ปรับปรุง: สิ่งหนึ่งที่ฉันสามารถพูดได้อย่างมั่นใจ 100% คุณสามารถทำได้ในวอลเลย์ของ Google มันถูกสร้างขึ้นมาเราสามารถทำสิ่งนี้ใน …

9
วิธีสร้าง REST URLs ที่ไม่มีกริยา?
ฉันพยายามหาวิธีออกแบบ URL ที่เงียบสงบ ฉันทุกคนใช้วิธีเงียบ ๆ ในการใช้ URL กับคำนามไม่ใช่คำกริยาไม่เข้าใจวิธีการทำเช่นนี้ เรากำลังสร้างบริการเพื่อใช้เครื่องคิดเลขทางการเงิน เครื่องคิดเลขใช้พารามิเตอร์หลายตัวที่เราจะอัปโหลดผ่านไฟล์ CSV กรณีการใช้จะเกี่ยวข้องกับ: อัปโหลดพารามิเตอร์ใหม่ รับพารามิเตอร์ล่าสุด รับพารามิเตอร์สำหรับวันที่ที่กำหนด ทำให้ชุดของพารามิเตอร์ใช้งานได้ ตรวจสอบชุดของพารามิเตอร์ ฉันรวบรวมวิธีการพักผ่อนที่จะมี URL ประเภทต่อไปนี้: /parameters /parameters/12-23-2009 คุณสามารถใช้สามกรณีแรกด้วย: POST ที่คุณรวมไฟล์พารามิเตอร์ไว้ในคำขอโพสต์ รับ URL แรก รับ URL ที่สอง แต่คุณจะใช้กรณีที่ 4 และ 5 โดยไม่ต้องใช้คำกริยาได้อย่างไร คุณไม่ต้องการ URL เช่น: /parameters/ID/activate /parameters/ID/validate ??
283 rest  restful-url 

13
เมื่อใดที่จะใช้ @QueryParam vs @PathParam
ฉันไม่ได้ถามคำถามที่ถามไว้แล้วที่นี่: อะไรคือความแตกต่างระหว่าง @PathParam และ @QueryParam นี่คือ "แนวปฏิบัติที่ดีที่สุด" หรือคำถามการประชุม เมื่อคุณจะใช้VS@PathParam@QueryParam สิ่งที่ฉันคิดได้ว่าการตัดสินใจอาจใช้ทั้งสองอย่างเพื่อแยกความแตกต่างของรูปแบบข้อมูล ให้ฉันอธิบายด้านล่าง LTPO ของฉัน - น้อยกว่าการสังเกตที่สมบูรณ์ การใช้ PathParam สามารถสำรองไว้สำหรับหมวดหมู่ข้อมูลซึ่งจะตกอยู่ในสาขาของแผนภูมิข้อมูล PathParam สามารถใช้ในการเจาะลึกไปยังลำดับชั้นของเอนทิตี ในขณะที่ QueryParam อาจถูกสงวนไว้สำหรับการระบุแอตทริบิวต์เพื่อค้นหาอินสแตนซ์ของคลาส ตัวอย่างเช่น, /Vehicle/Car?registration=123 /House/Colonial?region=newengland /category?instance @GET @Path("/employee/{dept}") Patient getEmployee(@PathParam("dept")Long dept, @QueryParam("id")Long id) ; VS /category/instance @GET @Path("/employee/{dept}/{id}") Patient getEmployee(@PathParam("dept")Long dept, @PathParam("id")Long id) ; VS ?category+instance @GET @Path("/employee") Patient …
276 java  rest  jax-rs 

6
ฉันควรใช้ PATCH หรือ PUT ใน REST API หรือไม่
ฉันต้องการออกแบบจุดปลายทางที่เหลือของฉันด้วยวิธีการที่เหมาะสมสำหรับสถานการณ์ต่อไปนี้ มีกลุ่ม แต่ละกลุ่มมีสถานะ กลุ่มสามารถเปิดใช้งานหรือปิดใช้งานโดยผู้ดูแลระบบ ฉันควรจะออกแบบจุดสิ้นสุดของฉันเป็น PUT /groups/api/v1/groups/{group id}/status/activate หรือ PATCH /groups/api/v1/groups/{group id} with request body like {action:activate|deactivate}

8
วิธีรับ POST ใน php
ฉันส่งเป็น POST ไปยังหน้า php ต่อไปนี้: {a:1} นี่คือเนื้อหาของคำขอ (คำขอ POST) ใน php ฉันต้องทำอย่างไรเพื่อแยกค่านั้น var_dump($_POST); ไม่ใช่วิธีแก้ปัญหาไม่ทำงาน
273 php  rest  post 

4
รหัสการตอบกลับ REST สำหรับข้อมูลที่ไม่ถูกต้อง
ควรส่งรหัสตอบสนองอะไรให้กับลูกค้าในกรณีที่เกิดสถานการณ์ต่อไปนี้ ข้อมูลที่ส่งผ่านไม่ถูกต้องขณะลงทะเบียนผู้ใช้เช่นรูปแบบอีเมลที่ไม่ถูกต้อง ชื่อผู้ใช้ / อีเมลนี้มีอยู่แล้ว ฉันเลือก 403 ฉันยังพบว่าฉันรู้สึกว่าสามารถใช้งานได้ วิกิพีเดีย: 412 เงื่อนไขเบื้องต้นล้มเหลว: เซิร์ฟเวอร์ไม่เป็นไปตามเงื่อนไขข้อใดข้อหนึ่งที่ผู้ร้องขอร้องขอ แนะนำรหัสถ้าฉันควรใช้นอกเหนือจาก 403
272 http  rest  jax-rs 

12
Spring RestTemplate GET พร้อมพารามิเตอร์
ฉันต้องRESTโทรหาที่มีส่วนหัวที่กำหนดเองและพารามิเตอร์การสืบค้น ฉันตั้งค่าของฉันHttpEntityด้วยส่วนหัว (ไม่มีร่างกาย) และฉันใช้RestTemplate.exchange()วิธีการดังต่อไปนี้: HttpHeaders headers = new HttpHeaders(); headers.set("Accept", "application/json"); Map<String, String> params = new HashMap<String, String>(); params.put("msisdn", msisdn); params.put("email", email); params.put("clientVersion", clientVersion); params.put("clientType", clientType); params.put("issuerName", issuerName); params.put("applicationName", applicationName); HttpEntity entity = new HttpEntity(headers); HttpEntity<String> response = restTemplate.exchange(url, HttpMethod.GET, entity, String.class, params); สิ่งนี้ล้มเหลวในตอนท้ายของไคลเอนต์โดยdispatcher servletไม่สามารถแก้ไขการร้องขอไปยังตัวจัดการได้ เมื่อทำการดีบั๊กแล้วดูเหมือนว่าจะไม่ส่งพารามิเตอร์คำขอ เมื่อฉันแลกเปลี่ยนกับการPOSTใช้เนื้อหาคำขอและไม่มีพารามิเตอร์การสืบค้นก็ใช้งานได้ดี ไม่มีใครมีความคิดใด ๆ
267 java  spring  rest 

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