Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用Laravel构建RESTJSONAPI_Php_Json_Api_Rest_Laravel - Fatal编程技术网

Php 使用Laravel构建RESTJSONAPI

Php 使用Laravel构建RESTJSONAPI,php,json,api,rest,laravel,Php,Json,Api,Rest,Laravel,我需要构建我的应用程序的移动版本。移动应用程序将具有相同的功能,为此,我需要为我的web应用程序构建一个可以从移动客户端访问的API 让我们举个例子:我有一个名为PostController的控制器类,负责应用程序中的POST。这是一个资源控制器 Route::resource("users.posts", "PostController"); 当用户访问http://domain.com/users/{id}/posts/{id},他得到一个呈现的HTML响应。这是在PostControll

我需要构建我的应用程序的移动版本。移动应用程序将具有相同的功能,为此,我需要为我的web应用程序构建一个可以从移动客户端访问的API

让我们举个例子:我有一个名为
PostController
的控制器类,负责应用程序中的POST。这是一个资源控制器

Route::resource("users.posts", "PostController");
当用户访问
http://domain.com/users/{id}/posts/{id}
,他得到一个呈现的HTML响应。这是在
PostController@show
方法:

public function show($user_id, $post_id) {
    $post = Post::findOrFail($post_id);
    // other logic here

    return view("post.show", ["post" => $post_id]);
}
但现在用户启动了他的移动应用程序,该应用程序查询
http://api.domain.com/users/{id}/posts/{id}
。我知道我可以为API创建一个单独的控制器,但这会导致代码重复。很难维持,不是个聪明的主意

如何制作利用现有控制器的JSON API

也许像

public function show($user_id, $post_id) {
    $post = Post::findOrFail($post_id);
    // other logic here

    if(is api.domain.com) {
        return json
    } else {
        return view("post.show", ["post" => $post_id]);
    }

}

我需要用OAuth保护API,我已经使用了该软件包。

这主要是个人偏好,我会使用单独的控制器,因为我将API和web应用视为单独的应用程序。

您似乎已经解决了这一问题。。你的问题是什么?@BrianGlaz我对如何做有这个想法,但我不知道这是否有什么好处(阅读:这是应该做的方式)或实际如何做。如您所见,我在最后一个代码段中只有一些虚拟内容。这可能是一条注释。请在回答中提供解决方案。