Php 如何在Laravel中使用JSON和HTTP POST来处理票务API
我正在尝试实现一个JSON负载,以便在我的PHP应用程序(使用Laravel框架)中使用HTTP POST和这个API()创建一个票证,我完全不知道如何开始攻击这个问题。有什么见解吗Php 如何在Laravel中使用JSON和HTTP POST来处理票务API,php,json,laravel,Php,Json,Laravel,我正在尝试实现一个JSON负载,以便在我的PHP应用程序(使用Laravel框架)中使用HTTP POST和这个API()创建一个票证,我完全不知道如何开始攻击这个问题。有什么见解吗 我目前有一个用laravel构建的表单,它将通过表单收集用户数据。我的目标是从上述表单获取数据,填充JSON有效负载上的字段(我下面的字段来自API的github页面),然后在点击“提交表单”按钮时将票据提交给系统。如果您能提供任何帮助或建议,我们将不胜感激 这就是JSON负载的样子,但我也不知道在laravel中
我目前有一个用laravel构建的表单,它将通过表单收集用户数据。我的目标是从上述表单获取数据,填充JSON有效负载上的字段(我下面的字段来自API的github页面),然后在点击“提交表单”按钮时将票据提交给系统。如果您能提供任何帮助或建议,我们将不胜感激 这就是JSON负载的样子,但我也不知道在laravel中放在哪里/如何格式化它
{
"alert": true,
"autorespond": true,
"source": "API",
"name": "Angry User",
"email": "randoemail@gmail.com",
"phone": "3333333333",
"subject": "Testing API",
"ip": "123.211.233.122",
"message": "data:text/html,MESSAGE <b>HERE</b>",
}
{
“警惕”:没错,
“自动响应”:正确,
“来源”:“API”,
“名称”:“愤怒的用户”,
“电子邮件”:randoemail@gmail.com",
“电话”:“3333”,
“主题”:“测试API”,
“ip”:“123.211.233.122”,
“消息”:“数据:文本/html,此处消息”,
}
您要做的应该通过两个步骤来实现
$dict['alert']=$request->input('alert');
$dict['autorespond']=$request->input('autorespond');
...
$json=json_encode($dict);
或者,如果没有不应发布到API的内容,您可以执行以下操作:
$json=json_encode($request->all());
见:和
$client=new GuzzleHttp\client(['base\u uri'=>'https://github.com.com/whatever/']);
$response=$client->post('the/api/endpoint',['json'=>$request->all());
请注意,您不需要对此处的内容进行json\u编码,因为Guzzle会为您进行编码。
见:
TICKET_URL=http://xxxxxxxx.com/api/http.php/tickets.json
TICKET_APIKEY={api_key_here}
TICKET_IP={your_ip}
然后将表单post数据传递给控制器,如下所示:
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Library\osTicket;
use Auth;
use User;
class WhateverController extends Controller {
public function addticket(Request $request) {
$user = User::find(Auth::id());
$ticket = new osTicket;
$ticket->createTicket($user->name, $user->email, $user->phone, $request->subject, $request->message);
if($result === true) {
return back();
} else {
return back()->with('status', $result);
}
}
}
您是否从API获取此有效负载?或者这是客户提交到票务系统的内容?请澄清事件的顺序以及您希望在何时捕获的内容。我目前有一个使用laravel构建的表单,该表单将通过表单收集用户数据。我的目标是从上述表单获取数据,填充JSON有效负载上的字段(我上面的字段来自API的github页面),然后在点击“提交表单”按钮时将票据提交给系统。我建议您:制作票据,查看它在原始数据库中弹出哪些字段并设置其值。然后将laravel模型设置为票务系统的数据库字段来模拟这一点。我知道要填充哪些字段以及如何将其放入laravel中,我只是有点不知道如何将其转换为json和http post(我也从未使用过)。如果您对这些字段进行popuplate,则不需要post。。。票务系统会认为它是通过或任何方式注入的。非常感谢!这给了我一个很好的立足点,我很欣赏['json'=>$request->all()];如果我只想使用dict变量中的内容,我会将其改为json=>$dict吗?是的!Guzzle会很高兴地为您将dict转换为json对象。
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Library\osTicket;
use Auth;
use User;
class WhateverController extends Controller {
public function addticket(Request $request) {
$user = User::find(Auth::id());
$ticket = new osTicket;
$ticket->createTicket($user->name, $user->email, $user->phone, $request->subject, $request->message);
if($result === true) {
return back();
} else {
return back()->with('status', $result);
}
}
}