“
The term “statelessness” is getting at the fact that the server doesn’t care what state the client is in.
”
”
Leonard Richardson (RESTful Web APIs: Services for a Changing World)
“
For now, let’s just say that if your API is re-defining the HTTP verbs or if it is assigning new meanings to HTTP status codes or making up its own status codes, it is not RESTful.
”
”
George Reese (The REST API Design Handbook)
“
thinking of API design as resource design is a very effective way to avoid thinking about hypermedia.
”
”
Leonard Richardson (RESTful Web APIs: Services for a Changing World)
“
Google BigQuery, a technology that is very different from, and often complementary to, many of the other technologies covered in the rest of this book. BigQuery, which is a hosted service accessed through an API, allows developers to run queries over large datasets and obtain results very quickly. We’ll
”
”
Anonymous
“
Someone consuming an API will definitely notice when the provider of that API is diverging from RESTful principles and it will seriously complicate that consumer’s life.
”
”
George Reese (The REST API Design Handbook)
“
In fact, the biggest misconception is that you can call your API RESTful if its delivering XML or JSON over HTTP. And that misconception and the resulting proliferation of horrible APIs is likely the source of RESTafarian irritation with the application of the term “RESTful” in an API context. But let’s be brutally honest. Most interactive systems don’t follow this model either.
”
”
George Reese (The REST API Design Handbook)
“
we will demonstrate how a short list of concrete design guidelines and a small vocabulary can be used to create APIs that expose enough information to be usable by a completely generic API browser. Based on a simple prototype, we will show how easily such a, at first sight, disruptive approach can be integrated in current Web frameworks and how it can be used to build interoperable and evolvable APIs in considerably less time.
”
”
Cesare Pautasso (REST: Advanced Research Topics and Practical Applications)
“
Instead of using dynamic contracts that are retrieved and analyzed at runtime, which would, just as on the human Web, allow clients to adapt to ad-hoc changes, developers chose to use static contracts. All the knowledge about the API a server exposes is typically directly embedded into the clients. This leads to tightly coupled systems which impede the independent evolution of its components. When
”
”
Cesare Pautasso (REST: Advanced Research Topics and Practical Applications)
Robert Daigneau (Service Design Patterns: Fundamental Design Solutions for SOAP/WSDL and RESTful Web Services (Addison-Wesley Signature Series (Fowler)))
“
Rule: HEAD should be used to retrieve response headers
”
”
Mark Masse (REST API Design Rulebook)
“
A REST API should use PUT for updates, but there may be multiple ways to update an order, including cancelling it, revising the order, and so on. Also, an update might not be idempotent, which is a requirement for using PUT.
”
”
Chris Richardson (Microservices Patterns: With examples in Java)
“
Simple to develop—IDEs and other developer tools are focused on building a single application. Easy to make radical changes to the application—You can change the code and the database schema, build, and deploy. Straightforward to test—The developers wrote end-to-end tests that launched the application, invoked the REST API, and tested the UI with Selenium. Straightforward to deploy—All a developer had to do was copy the WAR file to a server that had Tomcat installed. Easy to scale—FTGO ran multiple instances of the application behind a load balancer.
”
”
Chris Richardson (Microservices Patterns: With examples in Java)
“
For RESTful services and APIs, there are two popular standards for description: Web Application Description Language (WADL) and Swagger
”
”
Prabath Siriwardena (Advanced API Security: OAuth 2.0 and Beyond)
“
The HTTP, which operates at the application layer, takes care of building the HTTP message with all relevant headers and passes it to the TCP at the transport layer. Whatever the data it receives from the application layer, the TCP encapsulates with its own headers and passes it through the rest of the layers in the TCP/IP stack.
”
”
Prabath Siriwardena (Advanced API Security: OAuth 2.0 and Beyond)
“
Confidentiality attribute of the CIA triad worries about how to protect data from unintended recipients, both at rest and in transit.
”
”
Prabath Siriwardena (Advanced API Security: OAuth 2.0 and Beyond)
“
The Richardson Maturity Model can be used for determining the degree to which services are RESTful. The following levels are defined: Level 0: Services use an RPC style. Level 1: Services expose resources. Larger services are broken down into resources. Level 2: Services use HTTP methods correctly. Services use HTTP infrastructure efficiently. Level 3: Hypermedia is used according to HATEOAS. The service is self-documenting and flexible.
”
”
Matthias Biehl (RESTful API Design: Best Practices in API Design with REST)
“
Here are a couple of simple, practical tricks to determine if a service is not RESTful: If the name of the service is a verb instead of a noun, the service is likely RPC and not RESTful. If the name of the service to be executed is encoded in the request body, the service is likely RPC and not RESTful. If the back-button in the web-application does not work as expected, the service is not stateless and not RESTful. If the service or website does not behave as expected after turning cookies off, the service is not stateless and not RESTful.
”
”
Matthias Biehl (RESTful API Design: Best Practices in API Design with REST)
“
URLs don’t even need to make sense to human eyes. But we humans prefer nice-looking URLs, like
”
”
Leonard Richardson (RESTful Web APIs: Services for a Changing World)
“
The things you’re accustomed to are dangerous. In applications intended for use within an organization, a design based on API calls works well and is easy to develop. The API call metaphor assumes away the network boundary and lets a client invoke a method on a remote computer just like it would call the API of a local code library.
”
”
Leonard Richardson (RESTful Web APIs: Services for a Changing World)
“
the “API call” metaphor inevitably exposes the server’s implementation details to the clients. This introduces coupling between server code and client code.
”
”
Leonard Richardson (RESTful Web APIs: Services for a Changing World)
“
in a hypermedia-based design, resources don’t matter as much. The designer’s job is to identify all the state transitions.
”
”
Leonard Richardson (RESTful Web APIs: Services for a Changing World)
“
it seems we’ve got a mental block when it comes to hypermedia in web APIs. This is a big problem, because hypermedia is the feature that makes a web API capable of handling changes gracefully.
”
”
Leonard Richardson (RESTful Web APIs: Services for a Changing World)
“
What most users do not realize is that to be a RESTful architecture the web service must satisfy formal constraints. In particular, the application must be separated into a client-server model and the server must remain completely stateless. No client context may be stored on the server and resources should also be uniquely and uniformly identified. The client also should be able to navigate the API and transition state through the use of links and metadata in the resource responses. The client should not assume the existence of resources or actions other than a few fixed entry points, such as the root of the API.
”
”
Julia Elman (Lightweight Django: Using REST, WebSockets, and Backbone)
“
Secure and Compliant The API needs to ensure that it can only be accessed by authenticated and authorized consumers. The API does not leak internal information. The API is compliant with best practices and with security regulations.
”
”
Matthias Biehl (RESTful API Design: Best Practices in API Design with REST)
“
Now, about that REST API—sometimes called a RESTful API, which is a nice, relaxing take on things, isn’t it?
”
”
Mark Heckler (Spring Boot: Up and Running: Building Cloud Native Java and Kotlin Applications)