【问题标题】:Laravel api method with different response具有不同响应的 Laravel api 方法
【发布时间】:2020-08-12 19:20:06
【问题描述】:

我正在构建基于 Laravel 6 的 Api 服务器。 我有未经授权请求的端点。获取:/user/dummyuser 此方法返回 Dummyuser 的 JSON 数据。没关系。

但是,如果我将令牌作为 GET 参数传递到同一端点,我需要获取附加数据。 例如, GET:/user/dummyuser响应用户信息 GET:/user/dummyuser?token=ABCD 响应用户信息和添加

我该如何管理它?

【问题讨论】:

  • 您好,请使用以下内容:if($request->has('token')) { return ...} ;

标签: laravel rest api


【解决方案1】:

假设你的路线是这样的:

Route::get("/user/dummyuser/{token?}", "Controller@get_token");

你的方法是这样的,因为任何带参数或不带参数、带或不带身份验证的请求都可以工作。

public function get_tag($token = "", Request $request)
{
    // alternative method
    if (($user = Auth::user()) !== null) {
        // Here you have your authenticated user model
        return response()->json($response);
    }

    // return general data
    return response()->json($response);
}

希望对你有所帮助。

【讨论】:

    【解决方案2】:

    你可以使用我为我的项目编写的这个函数:

    public function __construct($includes = null)
    {
        parent::__construct();
        $this->includes = $includes;
    }
    
    
    if (strstr($this->includes, 'order')) {
    $products = $order->product()->get();
            if (count($products)) {
                return ((new ApiController())->respondWithTransform($products, (new ProductTransformer($this->includes))))->original['data'];
            }
        }
    return null;
    }
    

    所以如果我的路线中包含 includes='order',那么它会生成一些额外的数据

    这里是 strstr 的链接:strstr

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-14
      • 2020-06-11
      • 1970-01-01
      • 2019-06-30
      • 1970-01-01
      • 2016-09-21
      • 2022-01-13
      • 1970-01-01
      相关资源
      最近更新 更多