As a popular PHP framework, Laravel has become the first choice for developers to write APIs. With Laravel, you can quickly write high-quality APIs, which are increasingly popular among enterprise and individual developers.
In this article, we will explore how to write APIs using Laravel. We'll start with the following aspects: building APIs, API routing, controllers, and API testing.
Building API
When building an API, you need to use the built-in middleware and routers provided by Laravel. Starting from Laravel 5.5, the framework has built-in API Resource Controller function. This feature allows developers to create standard REST APIs faster and helps developers maintain code consistency.
How to use resource controller? First, execute the following command on the command line to create a new controller:
php artisan make:controller Api/PostController --api
This will create an API controller named PostController, which will automatically inherit Laravel
’s built-in ResourceController
, and contains all predefined methods. These methods include: index, show, store, update and destroy.
API Routing
In Laravel, routing is tightly coupled with controllers because we need to define the top-level controller in routing that handles API requests.
Route::prefix('api')->group(function () { Route::resource('posts', 'Api\PostController'); });
This route defines a URL of '/api/posts', which is used to operate the CRUD function of the Post model.
Controller
In the resource controller, we can use predefined functions to handle common tasks. For example, the following code starts creating and attaching a post article's file upload, moving the files from the repository into the public directory:
public function store(Request $request) { $path = $request->file('photo')->store('public/photos'); $post = new Post; $post->title = $request->input('title'); $post->description = $request->input('description'); $post->slug = str_slug($request->input('title')); $post->photo = $path; $post->save(); return new Resource($post); }
API Testing
Testing the API is to ensure that its functionality is working properly Key, make sure you write test cases when writing your API. Laravel also has built-in framework testing tools to help you write test cases easily.
When writing tests for your API, you can test your controller by sending an HTTP request and checking the response. For example, the following code tests whether the controller can correctly get the list of posts:
public function testPostIndex() { $response = $this->json('GET', '/api/posts'); $response->assertStatus(200); $response->assertJsonStructure([ 'data' => [ '*' => [ 'id', 'title', 'description', 'slug', 'photo', 'created_at', 'updated_at' ] ] ]); }
Conclusion
In Laravel, writing APIs is very easy. Using predefined API controllers and built-in routers, you can quickly create standard REST APIs. Use Laravel's testing tool to write test cases to check whether the API functionality is working properly. Excellent documentation and community support are key factors that make Laravel one of the most popular frameworks for developers.
The above is the detailed content of How to write api in laravel. For more information, please follow other related articles on the PHP Chinese website!