【问题标题】:Building a REST JSON API with Laravel使用 Laravel 构建 REST JSON API
【发布时间】:2023-03-31 22:22:01
【问题描述】:

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

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

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,并且我使用了 oauth2-server-laravel 包。

【问题讨论】:

  • 你似乎已经想通了。你有什么问题?
  • @BrianGlaz 我有这个想法,但我不知道它是否有好处(阅读:这是应该做的方式)或如何实际去做。如您所见,我在最后一个sn-p中只有一些虚拟内容。

标签: php json api rest laravel


【解决方案1】:

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

【讨论】:

  • 这可能是一条评论。请在您的回答中提供解决方案。
猜你喜欢
  • 2016-01-28
  • 2018-02-16
  • 2015-06-01
  • 2020-05-15
  • 2019-01-28
  • 1970-01-01
  • 2016-08-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多