好书推荐 好书速递 排行榜 读书文摘

RESTful Web Services

RESTful Web Services
作者:Leonard Richardson / Sam Ruby
出版社:O'Reilly Media
出版年:2007-05
ISBN:9780596529260
行业:其它
浏览数:4

内容简介

You've built web sites that can be used by humans. But can you also build web sites that are usable by machines? That's where the future lies, and that's what RESTful Web Services shows you how to do. The World Wide Web is the most popular distributed application in history, and Web services and mashups have turned it into a powerful distributed computing platform. But today's web service technologies have lost sight of the simplicity that made the Web successful. They don't work like the Web, and they're missing out on its advantages.

This book puts the "Web" back into web services. It shows how you can connect to the programmable web with the technologies you already use every day. The key is REST, the architectural style that drives the Web. This book:

* Emphasizes the power of basic Web technologies -- the HTTP application protocol, the URI naming standard, and the XML markup language

* Introduces the Resource-Oriented Architecture (ROA), a common-sense set of rules for designing RESTful web services

* Shows how a RESTful design is simpler, more versatile, and more scalable than a design based on Remote Procedure Calls (RPC)

* Includes real-world examples of RESTful web services, like Amazon's Simple Storage Service and the Atom Publishing Protocol

* Discusses web service clients for popular programming languages

* Shows how to implement RESTful services in three popular frameworks -- Ruby on Rails, Restlet (for Java), and Django (for Python)

* Focuses on practical issues: how to design and implement RESTful web services and clients

This is the first book that applies the REST design philosophy to real web services. It sets down the best practices you need to make your design a success, and the techniques you need to turn your design into working code. You can harness the power of the Web for programmable applications: you just have to work with the Web instead of against it. This book shows you how.

......(更多)

作者简介

Leonard Richardson () is the author of the Ruby Cookbook (O'Reilly) and of several open source libraries, including Beautiful Soup. A California native, he currently lives in New York.

Sam Ruby is a prominent software developer who has made significant contributions to the many of the Apache Software Foundation's open source projects, and to the standardization of web feeds via his involvement with the Atom web feed standard and the popular Feed Validator web service.He currently holds a Senior Technical Staff Member position in the Emerging Technologies Group of IBM. He resides in Raleigh, North Carolina.

......(更多)

目录

Foreword xi

Preface xiii

1. The Programmable Web and Its Inhabitants 1

Kinds of Things on the Programmable Web 4

HTTP: Documents in Envelopes 5

Method Information 8

Scoping Information 11

The Competing Architectures 13

Technologies on the Programmable Web 18

Leftover Terminology 20

2. Writing Web Service Clients 23

Web Services Are Web Sites 23

del.icio.us: The Sample Application 26

Making the Request: HTTP Libraries 29

Processing the Response: XML Parsers 38

JSON Parsers: Handling Serialized Data 44

Clients Made Easy with WADL 47

3. What Makes RESTful Services Different? 49

Introducing the Simple Storage Service 49

Object-Oriented Design of S3 50

Resources 52

HTTP Response Codes 54

An S3 Client 55

Request Signing and Access Control 64

Using the S3 Client Library 70

Clients Made Transparent with ActiveResource 71

Parting Words 77

4. The Resource-Oriented Architecture 79

Resource-Oriented What Now? 79

What’s a Resource? 81

URIs 81

Addressability 84

Statelessness 86

Representations 91

Links and Connectedness 94

The Uniform Interface 96

That’s It! 105

5. Designing Read-Only Resource-Oriented Services 107

Resource Design 108

Turning Requirements Into Read-Only Resources 109

Figure Out the Data Set 110

Split the Data Set into Resources 112

Name the Resources 117

Design Your Representations 123

Link the Resources to Each Other 135

The HTTP Response 137

Conclusion 140

6. Designing Read/Write Resource-Oriented Services 143

User Accounts as Resources 144

Custom Places 157

A Look Back at the Map Service 165

7. A Service Implementation 167

A Social Bookmarking Web Service 167

Figuring Out the Data Set 168

Resource Design 171

Design the Representation(s) Accepted from the Client 183

Design the Representation(s) Served to the Client 184

Connect Resources to Each Other 185

What’s Supposed to Happen? 186

What Might Go Wrong? 187

Controller Code 188

Model Code 205

What Does the Client Need to Know? 209

8. REST and ROA Best Practices 215

Resource-Oriented Basics 215

The Generic ROA Procedure 216

Addressability 216

State and Statelessness 217

Connectedness 218

The Uniform Interface 218

This Stuff Matters 221

Resource Design 227

URI Design 233

Outgoing Representations 234

Incoming Representations 234

Service Versioning 235

Permanent URIs Versus Readable URIs 236

Standard Features of HTTP 237

Faking PUT and DELETE 251

The Trouble with Cookies 252

Why Should a User Trust the HTTP Client? 253

9. The Building Blocks of Services 259

Representation Formats 259

Prepackaged Control Flows 272

Hypermedia Technologies 284

10. The Resource-Oriented Architecture Versus Big Web Services 299

What Problems Are Big Web Services Trying to Solve? 300

SOAP 300

WSDL 304

UDDI 309

Security 310

Reliable Messaging 311

Transactions 312

BPEL, ESB, and SOA 313

Conclusion 314

11. Ajax Applications as REST Clients 315

From AJAX to Ajax 315

The Ajax Architecture 316

A del.icio.us Example 317

The Advantages of Ajax 320

The Disadvantages of Ajax 321

REST Goes Better 322

Making the Request 323

Handling the Response 324

JSON 325

Don’t Bogart the Benefits of REST 326

Cross-Browser Issues and Ajax Libraries 327

Subverting the Browser Security Model 331

12. Frameworks for RESTful Services 339

Ruby on Rails 339

Restlet 343

Django 355

A. Some Resources for REST and Some RESTful Resources 365

B. The HTTP Response Code Top 42 371

C. The HTTP Header Top Infinity 389

Index 409

......(更多)

读书文摘

对于一个REST式Web服务,它会在HTTP方法里寻找方法信息,在URI里寻找作用域信息。

但是,REST并不是一种架构,而是一组设计原则。你可以讲“在遵守这些原则方面,一个架构做得比另一个架构好”,但是你不能讲“REST架构”,因为不存在一个叫“REST架构”的东西。

......(更多)

猜你喜欢

点击查看