Skip to content

Instantly share code, notes, and snippets.

@emiliojva
Last active April 27, 2020 03:36
Show Gist options
  • Save emiliojva/16290b24d063e4623478c41aab4b108f to your computer and use it in GitHub Desktop.
Save emiliojva/16290b24d063e4623478c41aab4b108f to your computer and use it in GitHub Desktop.
Desenvolvimento de APIs RESTFul com Laravel.

Desenvolvimento de APIs RESTFul com Laravel

Intro

RESTful e Protocolo HTTP

Request e response

  • Status Code
    • 200
    • 300
    • 400
    • 500

Preparando o Laravel

  • Criar banco mysql: echo create database curso_laravel_rest_2 | mysql -u root -p
  • Instalar laravel: composer create-project --prefer-dist laravel/laravel^5.7
  • Configurar .env com nome do banco,usuario e senha.
  • Testar: php artisan serve

EndPoint

  • Criar um nova rota em routes\api.php:
    // ja vem com api na frente
    Route:prefix('v1')->group( function(){
      Route:get('/products','ProductsController@index'); // gera /api/v1/products
    })
    

Inserir registros

  • Criar rota para adicionar registros
      // ja vem com api na frente
      Route:prefix('v1')->group( function(){
        Route:get('/products','ProductsController@index'); // gera /api/v1/products
        Route:post('/products','ProductsController@store'); // gera /api/v1/products
      })
    
  • Usar postman para inserir com metodo/verb POST
  • Electron - Criar app desktop com html/css/js

Finalizando CRUD

  • Criar rota para adicionar registros
      // ja vem com api na frente
      Route:prefix('v1')->group( function(){
        Route:get('/products','ProductsController@index'); // gera /api/v1/products
        Route:post('/products','ProductsController@store'); // gera /api/v1/products
        Route:update('/products/{product}','ProductsController@update'); // gera /api/v1/products
        Route:get('/products/{product}','ProductsController@show'); // gera /api/v1/products
        Route:delete('/products/{product}','ProductsController@destroy'); // gera /api/v1/products
      })
    

Trabalhando com mais de Resource

Trabalhando com validações

Instalando o Laravel Passport

  • Plataforma utilizada pelo laravel para autenticação em apis RESTful

    composer require laravel/passport 
    
  • Tabelas utilizadas pelo passport

    php artisan migrate
    
  • Geração de chaves do passport e sua instalação

    php artisan passport:install
    e guardar as keys geradas
    
  • Incluir no Model User um trait

    use Laravel\Passport\HasApiTokens
    class User {
      use HasApiToken
      ...
    }
    
  • Incluir novo autenticador em Providers/AuthServiceProvider

    use Laravel\Passport\Passport
    
  • Rotas do passport no método boot() da classe acima.

    Passport::routes();
    
  • Alterar guards da api para o Passport

    guards > api > driver > 'passport'
    
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment