background preloader

APIs

Facebook Twitter

REST. How to design a REST API. We propose a “Quick Reference Card”, as a summary of best practices in REST API design.

How to design a REST API

Download API Design – Quick Reference Card As soon as we start working on an API, design issues arise. A robust and strong design is a key factor for API success. A poorly designed API will indeed lead to misuse or – even worse – no use at all by its intended clients: application developers. Creating and providing a state of the art API requires taking into account: RESTful API principles as described in the literature (Roy Fielding, Leonard Richardson, Martin Fowler, HTTP specification…)The API practices of the Web Giants Nowadays, two opposing approaches are seen. RESTful API design OCTO Quick Reference Card 2.2. - The RESTful cookbook. REST Security Cheat Sheet. Last revision (mm/dd/yy): 12/4/2015 REST (or REpresentational State Transfer) is a means of expressing specific entities in a system by URL path elements.

REST is not an architecture but it is an architectural style to build services on top of the Web. REST allows interaction with a web-based system via simplified URLs rather than complex request body or POST parameters to request specific items from the system. Interagent/http-api-design. Architectural Styles and the Design of Network-based Software Architectures.

Principled Design of the ModernWeb Architecture. Web API Design. RESTful Web APIs. In this huge world that is getting bigger every day, RESTful API plays a huge role, in fact a lot of companies are moving their API to RESTful API since it's easier to use, therefore more attractive for potential clients.

RESTful Web APIs

This book is an average-size book, in fact is a 356 (real) pages long book and features 38 additional pages containing other things like covers, indexes, glossary, etc. The book is easy to read thanks to it's simple language and the fact that is split in 13 chapters and 3 appendices (averagely ~22 pages per chapter/appendix). One of the good things of this book is the fact that it does not require any specific knowledge acquired before start reading the book.

A proof of this approach are the first three chapters that talk more about HTTP and how it works more than RESTful API. I think the book is a very good resource to learn the basics of RESTful API. Disclaimer: I received a free electronic copy of this book as part of the O'Reilly Blogger Program. RPC. Software mechanism allowing a procedure to execute in another address space, coded as if it were a normal (local) procedure call, without explicit coding of the details for the remote interaction In distributed computing, a remote procedure call (RPC) is when a computer program causes a procedure (subroutine) to execute in a different address space (commonly on another computer on a shared network), which is coded as if it were a normal (local) procedure call, without the programmer explicitly coding the details for the remote interaction.

RPC

That is, the programmer writes essentially the same code whether the subroutine is local to the executing program, or remote.[1] This is a form of client–server interaction (caller is client, executor is server), typically implemented via a request–response message-passing system. In the object-oriented programming paradigm, RPC calls are represented by remote method invocation (RMI). History and origins[edit] Message passing[edit] SOAP. Messaging protocol for web services SOAP allows developers to invoke processes running on disparate operating systems (such as Windows, macOS, and Linux) to authenticate, authorize, and communicate using Extensible Markup Language (XML).

SOAP

Since Web protocols like HTTP are installed and running on all operating systems, SOAP allows clients to invoke web services and receive responses independent of language and platforms. Characteristics[edit] SOAP provides the Messaging Protocol layer of a web services protocol stack for web services. It is an XML-based protocol consisting of three parts: an envelope, which defines the message structure[1] and how to process ita set of encoding rules for expressing instances of application-defined datatypesa convention for representing procedure calls and responses SOAP has three major characteristics: The SOAP architecture consists of several layers of specifications for: History[edit] WSDL. The Web Services Description Language (WSDL ) is an XML-based interface description language that is used for describing the functionality offered by a web service.

WSDL

The acronym is also used for any specific WSDL description of a web service (also referred to as a WSDL file), which provides a machine-readable description of how the service can be called, what parameters it expects, and what data structures it returns. Therefore, its purpose is roughly similar to that of a type signature in a programming language. The current version of WSDL is WSDL 2.0. The meaning of the acronym has changed from version 1.1 where the "D" stood for "Definition". Description[edit] Representation of concepts defined by WSDL 1.1 and WSDL 2.0 documents. The WSDL describes services as collections of network endpoints, or ports.