问题标签 [dingo-api]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1438 浏览

laravel - 如何更改 Dingo/Api 中的默认错误处理程序?

我正在使用 Laravel 框架和 Dingo API 库构建一个 REST API。除了我不知道在发生异常时如何自定义默认错误处理程序之外,一切都运行良好。

例如,当我的代码运行错误时,响应很简单:

如何将此响应更改为我自己的格式?

0 投票
1 回答
876 浏览

php - 使用内置的 Laravel 5.2 身份验证并加载 SPA,然后为所有其他路由加载 Dingo API

我正在尝试确定是否可以使用带有刀片/视图的常规 Laravel 身份验证路由进行基本身份验证,然后加载 SPA(带有自己的路由器的 Vue.js)并通过 Dingo 调用 API?

目前我在我的顶部有这个routes.php,它有效:

app.domian.com/受 Auth 保护,这就是 SPA 使用的路由。我使用标准的、内置的 Laravel Auth 页面(非 SPA),因此当用户登录或注册时,它允许访问主路由并加载 SPA。

我想做的是从现在开始使用 Dingo。所以所有的调用app.domian.com/api/*都由 Dingo 处理。

我已将此添加到相同的路由文件中:

这似乎不起作用。

甚至可以以这种方式使用 Dingo,或者我必须放弃内置的 Auth 以获得 JWT 之类的东西。我希望将来能做到这一点,但现在我只需要让它工作。

0 投票
1 回答
2131 浏览

laravel-5.2 - Dingo API 内部发布请求不适用于 Laravel 5.2

我在使用最新的 Laravel 5.2 和 Dingo dev/master(提交 904d4e4e)时遇到了内部发布请求的问题。获取请求工作正常,但是当我尝试从任何地方(routes.php 和控制器)进行任何发布请求时,我不断收到“缺少参数 1”错误异常。

我的 App Controller 都扩展了我的 Base Controller,设置如下:

管理子域“modelExample”控制器的示例:

'modelExample' API 控制器示例:

我的路线.php

无论我在管理控制器上的 store 方法中使用什么,我都会收到以下错误:

Missing argument 1 for App\Api\Controllers\ApiModelExampleController::store()

我努力了:

我也直接从带有测试端点的路由文件中尝试过,我已经关闭了所有中间件......无论我做什么,都无法识别有效负载数组。

这是 Laravel 5.2 与 5.1 的问题吗?我是否遗漏了一些完全明显的事情(众所周知……经常发生)?我该如何解决这个问题?非常感谢提前!:-)

0 投票
1 回答
1664 浏览

php - Laravel 5.2 Dingo/api 资源组

正如标题所提到的,我正在尝试弄清楚如何通过 dingo 制作资源组。

正如它用 laravel 解释的那样,在路由中创建资源组的正确方法是:

它与 dingo/api 相似吗?我可以说:

以这种方式执行时,我收到一个类型错误:

传递给 Dingo\Api\Routing\Router::resources() 的参数 1 必须是数组类型,给定字符串

这是否意味着我必须创建一个包含我需要的所有调用的数组,然后将其传递给resources方法?

0 投票
2 回答
1312 浏览

php - 仅将 Laravel/Dingo 用于 API

我们有一个大型 PHP 应用程序,它基本上是用我们自己的框架从头开始编写的。现在对于移动开发,我们需要创建一个 API,但问题是是只使用一个 rest api 包,还是使用更强大的东西。从头开始编写自己的 rest api 不再是一种选择。

我已经查看了包含Slim 框架的选项。这将很容易实现,但在我看来它缺乏良好的结构。

我看过的另一个选择是Dingo,它建立在 Laravel 之上。一个很大的优势是它已经拥有庞大的结构和大量的工具可以使用。

这里的问题是,Laravel 是否会因为仅用于 API 而开销太大,而我们自己的框架也在同一台服务器上运行。请注意,我们必须包含我们自己框架的很大一部分,以保持事情顺利进行。所有模型和列表都来自我们自己的框架。

我不知道 Laravel 是否会在进入 API 部分之前加载很多不必要的项目,或者这是否会像 Slim 框架那样是轻量级的。

0 投票
1 回答
3370 浏览

php - Lumen + Dingo + JWT 在构建时不可实例化

我正在尝试为 Lumen + Dingo Rest API 奠定基本的工作基础,但我无法弄清楚如何和平共处。

Lumen 工作正常,但是当我尝试添加 Dingo 时,我得到了各种各样的错误。从我读到的Dingo 文档:

获得包后,您可以在config/api.php文件或服务提供程序或引导文件中配置提供程序。

或者

我已经安装了 Lumen 的新副本,但我没有看到任何config/api.php,所以我假设我使用这段代码放置在我的bootstrap/app.php

这就是我的bootstrap/app.php样子:

运行此程序时,我收到以下错误:

只有当我删除以下代码时,它才会再次起作用:

更新 1

.env文件:

0 投票
1 回答
387 浏览

laravel-5 - Laravel 5 + DingoApi 分页

我正在使用 Laravel 和 DingoAPI 开发一个 api,它通过分页返回用户的消息线程。

我得到了这样的回应:

我该怎么做才能删除响应的某些字段?我只需要数据和 next_page_url ...</p>

我试过这样:

但只返回空值。我猜 Dingo Api 正在幕后做一些工作……</p>

0 投票
1 回答
1427 浏览

php - Laravel 5 API 与 Dingo

我正在使用 Laravel 5 和 Dingo 构建一个 API。如何捕获任何未定义路由的请求?我希望我的 API 始终以特定格式的 JSON 响应进行响应。

例如,如果我有一条路线: $api->get('somepage','mycontroller@mymethod');

假设未定义路由,我该如何处理有人向同一个 uri 创建帖子的情况?

基本上发生的事情是 Laravel 抛出了 MethodNotAllowedHttpException。

我试过这个:

但我不断收到 MethodNotAllowedHttpException 抛出。

有没有办法我可以做到这一点?使用中间件?其他形式的包罗万象的路线?

编辑:

尝试将此添加到 app\Exceptions\Handler.php

它没有效果。我做了转储自动加载和所有这些。我什至添加了 dd($e) 并没有效果。这对我来说似乎很奇怪。

编辑 - 解决方案

弄清楚了。虽然 James 的回答让我朝着正确的方向思考,但发生的事情是 Dingo 覆盖了错误处理。为了自定义此错误的响应,您必须修改 app\Providers\AppServiceProvider.php。像这样制作引导功能(默认为空)

接受詹姆斯的回答,因为它让我朝着正确的方向前进。

希望这可以帮助某人:)这占据了我晚上的大部分时间......呃

0 投票
1 回答
529 浏览

laravel - 在没有 Lumen/Laravel 会话的情况下使用 Lumen + Dingo + JWT

我们正在使用基于以下 repo lumen-dingo的 Lumen/Dingo 实现。我们正在现有框架之上构建它,这带来了一些小问题。

我们的框架在整个应用程序中都使用自己的会话对象,无法更改它。我们理想情况下想要更改 Lumen + Dingo + JWT 设置,以便它使用我们的会话。

我不知道在这里做什么最好。我可以想到三种可能的解决方案:

  1. 在 Lumen 中创建一个自定义会话驱动程序,它将启动我们的框架会话。
  2. 完全忽略 Lumen 会话
  3. 在正常会话旁边使用流明会话,因此它们都同时处于活动状态,但我不知道这是否会起作用。

    /li>

我正在尝试编辑这些详细信息,但我一直遇到错误。我不知道我是否只是做错了什么,或者甚至可能完全走错了路。

0 投票
3 回答
3501 浏览

javascript - 雄辩的模型属性作为骆驼案例 [Laravel 5.2] [Dingo API]

我们的 Eloquent 模型具有遵循 Laravel 蛇案例约定的属性。

例如first_namelast_namecreated_at

虽然我的前端(反应)遵循 javascript 驼峰式标准。

例如firstNamelastNamecreatedAt

发送 API 响应时,是否有一种简单的方法可以将所有属性转换为驼峰式?

我们使用的是 Larave 5.2 和 Dingo API 包。


更新

继接受的答案之后,我使用了自定义响应格式方法。请参阅以下实现要点(包括单元测试):

https://gist.github.com/andrewmclagan/c5e0fe601d23f3b859b89a9f8922be68