【发布时间】:2021-11-30 05:44:17
【问题描述】:
基本上我使用 Zotero 的 API 从我的 (zotero) 库中获取项目并将它们保存在我的数据库中。
当我点击提交按钮时,数据被保存,但我想同时使用 http 请求的删除方法从在线 zotero 的库中删除它。
以下是 API 文档关于删除的说明:
URI:
/keys/<key>
给定 API 密钥的用户 ID 和权限。 使用 DELETE HTTP 方法删除密钥。这通常只能由最初使用 OAuth 创建密钥的客户端完成。
数据的Json结构如下:
这是我的控制器:
public function index(Request $req){
$response = Http::withToken('MyApiKey')->get('https://api.zotero.org/users/myUserID/items?limit=100
');
$response->json();
$datas= json_decode($response);
return view('partials.ajout_automatique',compact('datas'));
}
我的看法:
@foreach ($datas as $data)
{{-- {{dd(property_exists($data->data,'title'))}} --}}
@if (property_exists($data->data,'title'))
<form action="/reference/autoCreate" method="post">
@csrf
<div>
{{-- Title --}}
@if (property_exists($data->data,'title'))
<p>Titre: {{$data->data->title}}</p>
<input type="hidden" name="title" value="{{$data->data->title}}" >
@else
<p>Titre not found</p>
<input type="hidden" name="title" value="title unfound" >
@endif
{{-- etc... --}}
<button type="submit" name='Ajouter' value="Ajouter"
class="btn btn-success pl-5 pr-5">Ajouter</button>
</form>
@endif
@endforeach
我的功能商店:
public function store(Request $request)
{
$response = Http::withToken('ItxwU6wG7bnNDY3E9bVfq3Da')->get('https://api.zotero.org/users/8548265/items?limit=100
');
$response->json();
$collections= json_decode($response);
$reference_auto = new Reference;
$reference_auto->user_id = Auth::user()->id;
$reference_auto->title = $request->title;
$reference_auto->authors = $request->authors;
$reference_auto->year = $request->year;
$reference_auto->edition = $request->edition;
$reference_auto->url = $request->url;
$message = "Nouvelle référence ajoutée avec succès.";
$reference_auto->save();
Alert::success('Ok !', $message);
return redirect()->back();
}
我不知道应该如何以及在哪里使用Http::delete('http://example.com');
实现我需要做的事情。
例如删除第一项我在redirect()->back()之前在store函数中尝试这个
//delete from api lib
$key=$collections[0]->key;
Http::withToken('MyApiKey')->delete('https://api.zotero.org/users/MyUserID/items/keys/'.$key);
但它不起作用
【问题讨论】:
-
在哪里使用该调用取决于您的逻辑。通常,您可以在任何地方调用它。但是“它不起作用”是什么意思?请求是否未正确构建?没有正确发送?它是否返回任何错误?
-
看看我想做什么,我想我必须在我的商店功能中使用它。当我说它不起作用时,我的意思是它没有返回错误,但没有处理删除
标签: php laravel api httprequest httpclient