我正在使用Zocom的API从我的(zocom)库中获取项目,并将其保存到数据库中。
当我点击提交按钮,数据被保存,但我想在同一时刻删除它从在线zoopet的库与http请求的删除方法。
以下是API文档中关于删除的说明:
URI:/keys/<key>
给定API密钥的用户ID和权限。使用HTTP方法删除密钥。这通常只能由最初使用OAuth创建密钥的客户端完成。
数据的JSON结构看起来像这样:
x1c 0d1x的数据
这是我的控制器:
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);
型
但它不起作用
1条答案
按热度按时间eqqqjvef1#
您使用的URL不正确。如果要删除单个项目,请发送删除请求到
字符串
您还需要在请求中包含
If-Unmodified-Since-Version
标头。请参阅https://www.zotero.org/support/dev/web_api/v3/write_requests此外,检查由API返回的HTTP代码以检测问题总是值得的,例如,
400 Bad Request
意味着您发送的请求不正确,另一方面,428 Precondition Required
意味着请求被理解,但(在此特定情况下)未提供所需的If-Unmodified-Since-Version
报头。