Tìm kiếm tài liệu miễn phí

Ebook RESTful Service Best Practices

Ebook RESTful Service Best Practices. What is REST, REST Quick Tips, definitions, HTTP Verbs, resource Naming, Returning, Representations, querying, filtering and Pagination.



Đánh giá tài liệu

0 Bạn chưa đánh giá, hãy đánh giá cho tài liệu này


  • 5 - Rất hữu ích 0

  • 4 - Tốt 0

  • 3 - Trung bình 0

  • 2 - Tạm chấp nhận 0

  • 1 - Không hữu ích 0

Mô tả

RESTful Service Best Practices

RESTful Service Best Practices
Recommendations for Creating Web Services

Todd Fredrich
Pearson eCollege
@tfredrich
www.RestApiTutorial.com

08/02/13

www.RestApiTutorial.com

Page 1 of 40

RESTful Service Best Practices

08/02/13

www.RestApiTutorial.com

Page 2 of 40

RESTful Service Best Practices

Table of Contents
Document History...................................................................................................................................... 5
Who Should Read This Document.............................................................................................................5
Introduction................................................................................................................................................ 6
What is REST?...........................................................................................................................................6
Uniform Interface.................................................................................................................................. 7
Resource-Based................................................................................................................................ 7
Manipulation of Resources Through Representations......................................................................7
Self-descriptive Messages................................................................................................................ 7
Hypermedia as the Engine of Application State (HATEOAS)......................................................... 7
Stateless................................................................................................................................................. 7
Cacheable.............................................................................................................................................. 8
Client–server......................................................................................................................................... 8
Layered system......................................................................................................................................8
Code on demand (optional)................................................................................................................... 8
REST Quick Tips....................................................................................................................................... 9
Use HTTP Verbs to Mean Something................................................................................................... 9
Sensible Resource Names..................................................................................................................... 9
XML and JSON..................................................................................................................................... 9
Create Fine-Grained Resources...........................................................................................................10
Consider Connectedness......................................................................................................................10
Definitions................................................................................................................................................10
Idempotence........................................................................................................................................ 10
Safety................................................................................................................................................... 11
HTTP Verbs.............................................................................................................................................. 11
GET..................................................................................................................................................... 11
PUT..................................................................................................................................................... 12
POST................................................................................................................................................... 12
PUT vs POST for Creation..................................................................................................................13
DELETE..............................................................................................................................................13
Resource Naming..................................................................................................................................... 14
Resource URI Examples..................................................................................................................... 15
Resource Naming Anti-Patterns.......................................................................................................... 16
Pluralization.........................................................................................................................................16
Returning Representations....................................................................................................................... 17
Resource Discoverability Through Links (HATEOAS cont'd)........................................................... 18
Minimal Linking Recommendations.............................................................................................. 19
Link Format.................................................................................................................................... 19
Wrapped Responses.............................................................................................................................21
Handling Cross-Domain Issues........................................................................................................... 22
Supporting CORS........................................................................................................................... 22
Supporting JSONP..........................................................................................................................22
Querying, Filtering and Pagination.......................................................................................................... 23
Limiting Results.................................................................................................................................. 24
08/02/13

www.RestApiTutorial.com

Page 3 of 40

RESTful Service Best Practices
Limiting via the Range Header.......................................................................................................25
Limiting via Query-String Parameters............................................................................................25
Range-Based Responses................................................................................................................. 25
Pagination............................................................................................................................................26
Filtering and Sorting Results...............................................................................................................27
Filtering.......................................................................................................................................... 27
Sorting............................................................................................................................................ 28
Service Versioning................................................................................................................................... 28
Support Versioning via Content Negotiation.......................................................................................29
What version is returned when no version is specified?.................................................................31
Unsupported Versions Requested................................................................................................... 31
When Should I Create a New Version?............................................................................................... 32
Changes that will break contracts................................................................................................... 32
Changes considered non-breaking..................................................................................................33
At What Level Should Versioning Occur?.......................................................................................... 33
Use Content-Location to Enhance Responses.....................................................................................33
Links with Content-Type.....................................................................................................................33
Finding Out What Versions are Supported.......................................................................................... 33
How many versions should I support at once?............................................................................... 33
Deprecated...................................................................................................................................... 33
How do I inform clients about deprecated resources?....................................................................34
Date/Time Handling.................................................................................................................................34
Date/Time Serialization In Body Content........................................................................................... 34
Date/Time Serialization In HTTP Headers..........................................................................................35
Securing Services..................................................................................................................................... 35
Authentication..................................................................................................................................... 35
Transport Security............................................................................................................................... 36
Authorization.......................................................................................................................................36
Application Security............................................................................................................................36
Caching and Scalability........................................................................................................................... 37
The ETag Header............................................................................................................................ 37
HTTP Status Codes (Top 10)................................................................................................................... 39
Additional Resources............................................................................................................................... 40
Books...................................................................................................................................................40
Websites...............................................................................................................................................40

08/02/13

www.RestApiTutorial.com

Page 4 of 40

RESTful Service Best Practices

Document History
Date

Version

Description

Feb 10, 2012

Draft

Initial draft version.

Apr 24, 2012

v1.0

Initial public (non-draft) version.

May 29, 2012

v1.1

Minor updates to correct misspellings and clarify wording after
feedback from API Best Practices Task force.

Aug 2, 2013

v1.2

Updated versioning section. Additional minor corrections of
misspellings, wording, etc.

Who Should Read This Document
This best-practices document is intended for developers who are interested in creating RESTful Web
services that provide high reliability and consistency across multiple service suites. By following these
guidelines, services are well positioned for rapid, widespread, public adoption by both internal and
external clients.
The guidelines in this document are also appropriate for support engineers where they desire to services
developed using these best practices. While their concerns may be focused on caching practices, proxy
rules, monitoring, security and such, this document may be useful as an overarching service
documentation guide of sorts.
Additionally, management personnel may benefit from these guidelines by endeavoring to understand
the effort required to create services that are publicly consumable and offer high levels of consistency
across their service suites.

08/02/13

www.RestApiTutorial.com

Page 5 of 40

Tài liệu cùng danh mục Quản trị mạng

AD HOC NETWORKS Technologies and Protocols phần 6

. Giao thức định tuyến được phát triển cho các mạng có dây như Internet có dây là không đủ khi họ không chỉ giả định cấu trúc liên kết chủ yếu là cố định nhưng cũng có overheads1 cao. Điều này đã dẫn đến một số đề xuất định tuyến cụ thể nhắm mục tiêu cho các mạng ad hoc.


Cisco Network part 84

Tham khảo tài liệu 'cisco network part 84', công nghệ thông tin, quản trị mạng phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả


Giáo trình hình thành hệ thống ứng dụng phương pháp thiết kế và cài đặt mạng theo mô hình OSI p3

Tham khảo tài liệu 'giáo trình hình thành hệ thống ứng dụng phương pháp thiết kế và cài đặt mạng theo mô hình osi p3', công nghệ thông tin, quản trị mạng phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả


Lecture Computer communications & networks: Chapter 23 - Forouzan

Chapter 23 - Process-to-process delivery: UDP, TCP, and SCTP. Chapter 23 discusses three transport layer protocols in the Internet: UDP, TCP, and SCTP. The first, User Datagram Protocol (UDP), is a connectionless, unreliable protocol that is used for its efficiency. The second, Transmission Control Protocol (TCP), is a connection-oriented, reliable protocol that is a good choice for data transfer. The third, Stream Control Transport Protocol (SCTP) is a new transport-layer protocol designed for multimedia applications.


Module 9: Using XML to Exchange Data

Tham khảo tài liệu 'module 9: using xml to exchange data', công nghệ thông tin, quản trị mạng phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả


Giáo trình phân tích quy trình ứng dụng những loại mô hình mạng thực tế p9

Tham khảo tài liệu 'giáo trình phân tích quy trình ứng dụng những loại mô hình mạng thực tế p9', công nghệ thông tin, quản trị mạng phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả


ISDN và băng thông rộng với Frame Relay và ATM - Phần 2 Mạng số đa dịch vụ - Chương 7

Lớp vật lý của ISDN Lớp vật lý của ISDN giới thiệu cho ng-ời sử dụng các điểm S hoặc T (hình 6.2). Trong tr-ờng hợp này, những chức năng sau bao gồm cả chức năng của lớp vật lý ( lớp 1 của mô hình OSI ): • • • • • • • • • Giải mã dữ liệu số phục vụ cho việc truyền dẫn qua các giao diện. Truyền song công đối với kênh dữ liệu B Truyền song công đối với kênh dữ liệu D Ghép cách kênh để tạo ra cấu trúc truyền dẫn...


BÀI GIẢNG VỀ QUẢN TRỊ MẠNG

Các khái niệm cơ bản: Object ID Một thiết bị hỗ trợ SNMP có thể cung cấp nhiều thông tin khác nhau, mỗi thông tin đó gọi là một object. Mỗi object có một tên gọi và một mã số để nhận dạng object đó, mã số gọi là Object ID (OID)


Part 38 - ISA Server - Server Publishing

Publish SMTP, POP3, OWA... Tại máy Exchange Server (PC02) do mặc định Exchange đã tắt các dịch vụ POP3 và IMAP4 rồi (Xem lại bài Internel Protocol trong Exchange Server) nên ta phải vào Services bật các dịch vụ này lên. Tiếp đến bạn vào Exchange Management Console chọn Server Configuration - Hub Transport để cấu hình SMTP chứng thực theo cơ chế Basic. Tiếp theo ta phải cấu hình Service POP3 ở chế độ PlainText bằng cách chạy Exchange Power Shell nhập lệnh Set-PopSettings -LoginType PlainTextLogin. ...


Third Meeting of the Internet Governance Forum (IGF)

The third meeting of the Internet Governance Forum was held in Hyderabad, India, on 3-6 December 2008 and focused on the overall theme of ‘Internet for All’. The meeting was held in the aftermath of terrorist attacks in Mumbai. The participants expressed their sympathies to the families of the victims and the Government and the people of India. While these tragic events led to some cancellations, the overall attendance with 1280 participants from 94 countries, of which 133 were media representatives, was close to that at the second annual meeting. All the five main sessions were organized as three thematic days under the following headings: ‘Reaching the Next...


Tài liệu mới download

Bài tập Phrasal Verbs
  • 17/08/2017
  • 24.495
  • 996

Từ khóa được quan tâm

Có thể bạn quan tâm

Lab 5.1.10 Purchasing LAN Switches
  • 27/08/2009
  • 83.137
  • 144
Head First Networking
  • 07/12/2012
  • 72.082
  • 370
Configure CGMP on Switches
  • 28/08/2009
  • 25.192
  • 836
BackTrack in your back pocket
  • 10/04/2011
  • 36.096
  • 510

Bộ sưu tập

Danh mục tài liệu