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

Các cách đơn giản giúp tăng tín hiệu Wi-Fi trong gia đình?

Vị trí của router Đôi khi vô tình việc đặt router phát Wi-Fi ở những vị trí không thích hợp có thể làm giảm đáng kể chất lượng cũng như phạm vi phủ sóng của tín hiệu Wi-Fi trong gia đình. Vậy đặt router ở đâu để chất lượng tính hiệu cũng như vùng phủ sóng hiệu quả nhất? Dưới đây là một số lưu ý cho việc đặt router Wi-Fi trong gia đình bạn. Luôn đặt router ở giữa ngôi nhà, đây là điều đơn giản nhất nhưng có rất ít người để ý đến. Hầu hết người sử...


Nộ dung ôn tập Mạng

Giao thức là gì? Tại sao phải phân tầng giao thức Giao thức (protocol) là tập luật qui định cách thức truyền thông giữa các hệ thống máy tính Phân tầng giao thức: - đơn giản thiết kế - dễ dàng thay đổi 2. Mô hình OSI, chức năng cơ bản các tầng, luồng dữ liệu, đơn vị dữ liệu Mô hình OSI


5 nguyên tắc marketing trên Internet

Internet marketing-Những nguyên tắc quan trọng Vì sao hầu hết những người thợ thủ công khéo léo nhất, tự mình không thể trở thành triệu phú? Câu trả lời đơn giản là họ tạo ra những sản phẩm tuyệt vời nhất nhưng lại không thể marketing sản phẩm của mình.


Mạng máy tính part 9

Tham khảo tài liệu 'mạng máy tính part 9', 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ả


Tuần Báo TIN HỌC-Công Nghệ Thông Tin part 32

Tham khảo tài liệu 'tuần báo tin học-công nghệ thông tin part 32', 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ẢI PHÁP MẠNG KHÔNG DÂY TIÊN TIẾN CỦA NORTEL phần 1

Tổng quan về WLAN Mạng không dây (Wireless Network hay Wifi) là hệ thống mạng cho phép các thiết bị đầu cuối truy cập đến hệ thống mạng cục bộ, mạng Internet thông qua môi trường truyền sóng Radio. Đây là một giải pháp mới, có rất nhiều ưu điểm


Cabling Standard - TIA - Standard Catalog

Tham khảo tài liệu 'cabling standard - tia - standard catalog', 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 Business data communications: Chapter 13 - Behrouz A. Forouzan

Chapter 13 - The internet. In this chapter we first give a brief history of the Internet. We formally introduce the TCP/IP protocol suite (Internet model) that we used as a networking model throughout the book. We then discuss briefly the next generation protocol. Access to the Internet, both residential and organizational, is also discussed. Finally we introduce private networks, intranets, and extranets.


Module 9: SQL XML

This module provides participants with an introduction to the use of Extensible Markup Language (XML) with Microsoft® SQL Server™ 2000. SQL Server 2000 is one of the Microsoft .NET Enterprise Servers. As such, it is an example of how all the .NET Enterprise Servers are changing to fully support XML technologies.


Beginning Zend Framework phần 3

chúng tôi sử dụng tên duy nhất trong một biên tập thời trang và vì lợi ích của chủ sở hữu nhãn hiệu hàng hoá, không có ý định xâm phạm-: tên và đánh giá là khoá, và tên các nghệ sĩ và đánh giá nghệ sĩ là các giá trị. Với một lệnh if-else, bạn có thể sử dụng dữ liệu để hiển thị một dấu hoa thị bên cạnh tên nghệ sĩ


Tài liệu mới download

MBA dành cho lãnh đạo
  • 07/04/2012
  • 27.718
  • 730

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

Có thể bạn quan tâm

Chương 3: Lớp Transport
  • 08/09/2010
  • 42.070
  • 376
Cách tạo file Msi
  • 13/05/2011
  • 98.142
  • 807
Wireless all- In-One for Dummies- P3
  • 28/09/2010
  • 25.652
  • 563

Bộ sưu tập

Danh mục tài liệu