Uma API é um software que integra os aplicativos que criamos a outros aplicativos. O objetivo da criação é compartilhar dados entre os aplicativos que foram integrados.
A API RESTful/API REST é a aplicação da API(Interface de Programação de Aplicativos). REST (Representational State Transfer) é uma arquitetura de métodos de comunicação que usa o protocolo HTTP para a troca de dados, e esse método é frequentemente aplicado no desenvolvimento de aplicativos. Com o objetivo de fazer com que o sistema tenha bom desempenho, seja rápido e fácil de desenvolver (escalar), especialmente na troca e na comunicação de dados.
A criação de uma API REST no Yii é, na verdade, bastante fácil. Você pode tirar proveito da estrutura MVC existente, mas cria diferentes pontos de acesso que deseja acessar por diferentes tipos de serviços (não visitantes do site).
Aqui, usamos um exemplo para ilustrar como você pode criar um conjunto de APIs RESTful com pouco esforço de codificação. O Yii que usaremos é o modelo avançado yii2.
Suponha que você queira expor os dados do usuário por meio de APIs RESTful. A tabela de usuários neste exemplo foi criada quando você instalou o Yii pela primeira vez. Para saber como instalar o Yii, você pode ver em Como instalar o Yii2 Advanced via Composer.
Outros artigos interessantes
Etapas para criar uma API RESTful no Yii2 Advanced
A. Criar APIs de ponto de extremidade
No Yii2 Advanced template, temos um diretório de backend e frontend. Para separar os recursos da API, criaremos um novo diretório chamado “API” como ponto de extremidade.
- Copie o diretório backend e renomeie-o para “api”.
- Edite o arquivo“common/config/bootstrap.php” e adicione um alias para “api”.
<?php Yii::setAlias('@common', dirname(__DIR__)); Yii::setAlias('@frontend', dirname(dirname(__DIR__)) . '/frontend'); Yii::setAlias('@backend', dirname(dirname(__DIR__)) . '/backend'); Yii::setAlias('@api', dirname(dirname(__DIR__)) . '/api'); Yii::setAlias('@console', dirname(dirname(__DIR__)) . '/console');
- No diretório “environments/dev”, copie o diretório backend e renomeie-o para “api”. O mesmo vale para o diretório “environments / prod”, de modo que ele se parecerá com a seguinte imagem
- Ajuste o arquivo “environments/index.php” da seguinte forma
return [ 'Development' = > [ 'path' = > 'dev', 'setWritable' = > [ .........., 'api/runtime', 'api/web/assets', ], .............. 'setCookieValidationKey' = > [ .........., 'api/config/main-local.php', ], ], 'Production' = > [ 'path' = > 'prod', 'setWritable' = > [ .........., 'api/runtime', 'api/web/assets', ], ............. 'setCookieValidationKey' = > [ .........., 'api/config/main-local.php', ], ], ];
- No diretório api que criamos anteriormente, altere todas as palavras “backend” para “api”
B. Configuração do Yii
- Criar um controlador
Crie um arquivo “UserController” no diretório “api/controllers” e copie os seguintes scripts
<?php namespace apicontrollers; use yii\rest\ActiveController; class UserController extends ActiveController { public $modelClass = 'common\models\User'; }
- Configuração de REGRAS E URL de entrada JSON
Altere o arquivo “api/config/main.php” adicionando a solicitação JSON e a regra de URL da seguinte forma:
return [ ......... 'components' => [ 'request' => [ 'parsers' => [ 'application/json' => 'yiiwebJsonParser', ] ], ......... 'urlManager' => [ 'enablePrettyUrl' => true, 'enableStrictParsing' => true, 'showScriptName' => false, 'rules' => [ ['class' => 'yii\rest\UrlRule', 'controller' => 'user'], ], ] ............ ], ............ ];
- Crie um arquivo “.htaccess” no diretório “api/web/” e copie o seguinte código
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php
C. Teste de API
- Faça download do Postman,e abra o Postman. Faça uma solicitação para o URL “http://localhost/yii2-advanced/api/web/users”
- Ou com o comando CURL
- Você também pode acessá-lo por meio de um navegador com o URL “”http://localhost/yii2-advanced/api/web/users”