Code-on-demand (optional): the ability to send executable code from the server to the client when requested, extending client functionality.A layered system that organizes each type of server (those responsible for security, load-balancing, etc.) involved the retrieval of requested information into hierarchies, invisible to the client.hypertext/hypermedia is available, meaning that after accessing a resource the client should be able to use hyperlinks to find all other currently available actions they can take.self-descriptive messages returned to the client have enough information to describe how the client should process it.resources can be manipulated by the client via the representation they receive because the representation contains enough information to do so.resources requested are identifiable and separate from the representations sent to the client.A uniform interface between components so that information is transferred in a standard form.Cacheable data that streamlines client-server interactions.Stateless client-server communication, meaning no client information is stored between get requests and each request is separate and unconnected.A client-server architecture made up of clients, servers, and resources, with requests managed through HTTP.In order for an API to be considered RESTful, it has to conform to these criteria: There are request headers and response headers, each with their own HTTP connection information and status codes. Something else to keep in mind: Headers and parameters are also important in the HTTP methods of a RESTful API HTTP request, as they contain important identifier information as to the request's metadata, authorization, uniform resource identifier (URI), caching, cookies, and more. JSON is the most generally popular file format to use because, despite its name, it’s language-agnostic, as well as readable by both humans and machines. This information, or representation, is delivered in one of several formats via HTTP: JSON (Javascript Object Notation), HTML, XLT, Python, PHP, or plain text. When a client request is made via a RESTful API, it transfers a representation of the state of the resource to the requester or endpoint. API developers can implement REST in a variety of ways. REST is a set of architectural constraints, not a protocol or a standard. It’s also a way for an organization to share resources and information while maintaining security, control, and authentication-determining who gets access to what.Īnother advantage of an API is that you don’t have to know the specifics of caching-how your resource is retrieved or where it comes from. You can think of an API as a mediator between the users or clients and the resources or web services they want to get. In other words, if you want to interact with a computer or system to retrieve information or perform a function, an API helps you communicate what you want to that system so it can understand and fulfill the request.
An API is a set of definitions and protocols for building and integrating application software. It’s sometimes referred to as a contract between an information provider and an information user-establishing the content required from the consumer (the call) and the content required by the producer (the response). For example, the API design for a weather service could specify that the user supply a zip code and that the producer reply with a 2-part answer, the first being the high temperature, and the second being the low.