问题标签 [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.
laravel - 如何更改 Dingo/Api 中的默认错误处理程序?
我正在使用 Laravel 框架和 Dingo API 库构建一个 REST API。除了我不知道在发生异常时如何自定义默认错误处理程序之外,一切都运行良好。
例如,当我的代码运行错误时,响应很简单:
如何将此响应更改为我自己的格式?
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 之类的东西。我希望将来能做到这一点,但现在我只需要让它工作。
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 的问题吗?我是否遗漏了一些完全明显的事情(众所周知……经常发生)?我该如何解决这个问题?非常感谢提前!:-)
php - Laravel 5.2 Dingo/api 资源组
正如标题所提到的,我正在尝试弄清楚如何通过 dingo 制作资源组。
正如它用 laravel 解释的那样,在路由中创建资源组的正确方法是:
它与 dingo/api 相似吗?我可以说:
以这种方式执行时,我收到一个类型错误:
传递给 Dingo\Api\Routing\Router::resources() 的参数 1 必须是数组类型,给定字符串
这是否意味着我必须创建一个包含我需要的所有调用的数组,然后将其传递给resources
方法?
php - 仅将 Laravel/Dingo 用于 API
我们有一个大型 PHP 应用程序,它基本上是用我们自己的框架从头开始编写的。现在对于移动开发,我们需要创建一个 API,但问题是是只使用一个 rest api 包,还是使用更强大的东西。从头开始编写自己的 rest api 不再是一种选择。
我已经查看了包含Slim 框架的选项。这将很容易实现,但在我看来它缺乏良好的结构。
我看过的另一个选择是Dingo,它建立在 Laravel 之上。一个很大的优势是它已经拥有庞大的结构和大量的工具可以使用。
这里的问题是,Laravel 是否会因为仅用于 API 而开销太大,而我们自己的框架也在同一台服务器上运行。请注意,我们必须包含我们自己框架的很大一部分,以保持事情顺利进行。所有模型和列表都来自我们自己的框架。
我不知道 Laravel 是否会在进入 API 部分之前加载很多不必要的项目,或者这是否会像 Slim 框架那样是轻量级的。
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
文件:
laravel-5 - Laravel 5 + DingoApi 分页
我正在使用 Laravel 和 DingoAPI 开发一个 api,它通过分页返回用户的消息线程。
我得到了这样的回应:
我该怎么做才能删除响应的某些字段?我只需要数据和 next_page_url ...</p>
我试过这样:
但只返回空值。我猜 Dingo Api 正在幕后做一些工作……</p>
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。像这样制作引导功能(默认为空)
接受詹姆斯的回答,因为它让我朝着正确的方向前进。
希望这可以帮助某人:)这占据了我晚上的大部分时间......呃
laravel - 在没有 Lumen/Laravel 会话的情况下使用 Lumen + Dingo + JWT
我们正在使用基于以下 repo lumen-dingo的 Lumen/Dingo 实现。我们正在现有框架之上构建它,这带来了一些小问题。
我们的框架在整个应用程序中都使用自己的会话对象,无法更改它。我们理想情况下想要更改 Lumen + Dingo + JWT 设置,以便它使用我们的会话。
我不知道在这里做什么最好。我可以想到三种可能的解决方案:
- 在 Lumen 中创建一个自定义会话驱动程序,它将启动我们的框架会话。
- 完全忽略 Lumen 会话
在正常会话旁边使用流明会话,因此它们都同时处于活动状态,但我不知道这是否会起作用。
/li>
我正在尝试编辑这些详细信息,但我一直遇到错误。我不知道我是否只是做错了什么,或者甚至可能完全走错了路。
javascript - 雄辩的模型属性作为骆驼案例 [Laravel 5.2] [Dingo API]
我们的 Eloquent 模型具有遵循 Laravel 蛇案例约定的属性。
例如first_name
,last_name
和created_at
虽然我的前端(反应)遵循 javascript 驼峰式标准。
例如firstName
,lastName
和createdAt
发送 API 响应时,是否有一种简单的方法可以将所有属性转换为驼峰式?
我们使用的是 Larave 5.2 和 Dingo API 包。
更新
继接受的答案之后,我使用了自定义响应格式方法。请参阅以下实现要点(包括单元测试):
https://gist.github.com/andrewmclagan/c5e0fe601d23f3b859b89a9f8922be68