Chapter 13. Writing APIs
One of the most common tasks Laravel developers are given is to create an API, usually JSON and REST or REST-like, that allows third parties to interact with the Laravel application’s data.
Laravel makes it incredibly easy to work with JSON, and its resource controllers are already structured around REST verbs and patterns. In this chapter you’ll learn about some basic API-writing concepts, the tools Laravel provides for writing APIs, and some external tools and organizational systems you’ll want to consider when writing your first Laravel API.
The Basics of REST-Like JSON APIs
Representational State Transfer (REST) is an architectural style for building APIs. Technically, REST is either a broad definition that could apply to almost the entirety of the internet or something so specific that no one actually uses it, so don’t let yourself get overwhelmed by the definition or caught in an argument with a pedant. When we talk about RESTful or REST-like APIs in the Laravel world, we’re generally talking about APIs with a few common characteristics:
They’re structured around “resources” that can be uniquely represented by URIs, like
/catsfor all cats,
/cats/15for a single cat with the ID of 15, etc.
Interactions with resources primarily take place using HTTP verbs (
They’re stateless, meaning there’s no persistent session authentication between requests; each request must uniquely authenticate itself.