Aprofundando-se mais no uso de API RESTful, vamos exemplicar a criação de rotas e controladores:

  1. Criação do Controlador: Primeiro, você precisa criar um controlador que gerenciará as ações da API relacionadas a um determinado recurso. Vamos usar o exemplo de um recurso "Post".

    Para criar o controlador, abra o terminal ou prompt de comando e execute o seguinte comando Artisan:

    php artisan make:controller PostController --api
    

    Isso criará um controlador chamado PostController com os métodos específicos para API (index, show, store, update e destroy).

  2. Definição de Rotas: Em seguida, defina as rotas para sua API, especificando o controlador que irá manipular as ações.

    Abra o arquivo routes/api.php e adicione as seguintes rotas para o recurso "Post":

    <?php
    
    use Illuminate\\\\Http\\\\Request;
    use Illuminate\\\\Support\\\\Facades\\\\Route;
    
    Route::apiResource('/posts', 'PostController');
    
    

    A linha Route::apiResource cria automaticamente todas as rotas necessárias para as ações padrão do controlador (index, show, store, update e destroy). Essas rotas seguem as convenções RESTful.

  3. Implementação do Controlador: No PostController, implemente os métodos para cada ação:

    <?php
    
    namespace App\\\\Http\\\\Controllers;
    
    use App\\\\Models\\\\Post;
    use Illuminate\\\\Http\\\\Request;
    
    class PostController extends Controller
    {
        public function index()
        {
            $posts = Post::all();
            return response()->json($posts);
        }
    
        public function show($id)
        {
            $post = Post::find($id);
            if (!$post) {
                return response()->json(['message' => 'Publicação não encontrada'], 404);
            }
    
            return response()->json($post);
        }
    
        public function store(Request $request)
        {
            $request->validate([
                'title' => 'required|string',
                'content' => 'required|string',
            ]);
    
            $post = Post::create($request->all());
    
            return response()->json($post, 201);
        }
    
        public function update(Request $request, $id)
        {
            $post = Post::find($id);
            if (!$post) {
                return response()->json(['message' => 'Publicação não encontrada'], 404);
            }
    
            $request->validate([
                'title' => 'required|string',
                'content' => 'required|string',
            ]);
    
            $post->update($request->all());
    
            return response()->json($post);
        }
    
        public function destroy($id)
        {
            $post = Post::find($id);
            if (!$post) {
                return response()->json(['message' => 'Publicação não encontrada'], 404);
            }
    
            $post->delete();
    
            return response()->json(['message' => 'Publicação removida'], 200);
        }
    }
    
    
  4. Testando a API: Agora que você criou o controlador e definiu as rotas, sua API está pronta para ser testada. Você pode usar ferramentas como o curl, Postman ou Insomnia para fazer requisições HTTP e verificar as respostas JSON.

    Por exemplo, para listar todos os posts, faça uma solicitação GET para a rota /api/posts. Para criar um novo post, faça uma solicitação POST para a mesma rota, passando os dados do post no corpo da requisição.

    Lembre-se de que, dependendo dos requisitos de autenticação da sua API, você precisará lidar com a autenticação adequada para proteger as rotas sensíveis.

Laravel - The PHP Framework For Web Artisans