laravel API开发,使用dingo/api

1、composer添加 "dingo/api": "1.0.*@dev"

composer require dingo/api:1.0.x@dev

2、配置文件app.php添加注册

Dingo\Api\Provider\LaravelServiceProvider::class,

3、添加自定义配置(此时会在配置文件中生成api.php)

php artisan vendor:publish --provider="Dingo\Api\Provider\LaravelServiceProvider"

4、测试

添加路由:

1 $api->version('v1', function ($api) {
2         $api->group(['namespace' => 'App\Api\Controllers'], function ($api) {
3             $api->post('user/login','AuthController@login');
4             $api->post('user/register','AuthController@register');
5             $api->get('lessons', 'LessonsController@index');
6             $api->get('lessons/{id}', 'LessonsController@show');
7         });
8     });

添加控制器(app\Api\Controllers\LessonsController):

namespace App\Api\Controllers;

use App\Http\Model\Lessons;
use Illuminate\Http\Request;

use App\Http\Requests;
use App\Api\Transformer\LessonsTransformer;


class LessonsController extends Controller
{
  

    public function show($id)
    {
        $lesson = Lessons::find($id);
        if(!$lesson){
            return $this->response()->errorNotFound("Lesson nt found");
        }
        return $this->response()->item($lesson,new LessonsTransformer());
    }
}

添加model(app\Http\Model\Lessons)

 1 namespace App\Http\Model;
 2 
 3 use Illuminate\Database\Eloquent\Model;
 4 
 5 /**
 6  * Class Lessons
 7  * @package App\Api\Model
 8  */
 9 class Lessons extends Model
10 {
11     //
12 }

添加自定义的数据传输类(app\Api\Transformer\LessonsTransformer),此类可有可无,在控制器中修改是否调用即可。

 1  namespace App\Api\Transformer;
 2     use App\Http\Model\Lessons;
 3     use League\Fractal\TransformerAbstract;
 4 
 5     class LessonsTransformer extends TransformerAbstract
 6     {
 7         public function transform(Lessons $lesson)
 8         {
 9             return [
10                 'title' => $lesson['title'],
11                 'content' => $lesson['body'],
12                 'is_free' => (boolean)$lesson['free']
13             ];
14         }
15     }

 

 

效果:

 

 

备注:需要的lessons表可以自行添加(字段随意),然后配置数据库连接即可。

转载于:https://www.cnblogs.com/winstonsias/p/10193865.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值