用于发出WordPress REST API请求的实用程序。它是一个包装窗口.fetch
.
安装模块
npm install@wordpress/api-fetch--保存
此包假定您的代码将在2015年+环境。如果您使用的环境对此类语言功能和API的支持有限或不支持,您应该包括polyfill发货@wordpress/babel预设
在代码中。
从“@wordpress/api-fetch”导入apiFetch;apiFetch({path:'/wp/v2/posts'}).then((posts)=>{console.log(posts);} );
从“@wordpress/api-fetch”导入apiFetch;从“@wordpress/url”导入{addQueryArgs};const queryParams={include:[1,2,3]};//返回ID为1、2、3的帖子。apiFetch({path:addQueryArgs('/wp/v2/posts',queryParams)}).then((posts)=>{console.log(posts);} );
api获取({路径:'/wp/v2/posts/1',方法:'POST',data:{title:“新建文章标题”},})。然后((res)=>{console.log(res);} );
api获取
支撑并穿过所有的选项取来
全球的.
此外,还提供以下选项:
路径
(一串
)
用速记代替网址
,附加到当前站点的REST API根URL。
网址
(一串
)
要从中提取的端点的绝对URL。
解析
(布尔值
,默认真实的
)
不同于取来
,的承诺
的返回值api获取
将解析为解析的JSON结果。通过传递禁用此行为解析
作为假
.
数据
(对象
)
发送时间邮政
或PUT(输出)
仅请求。用速记代替身体
,接受要字符串化为JSON的对象值。
中止请求可以通过使用中止控制器
以与使用本机时相同的方式取来
应用程序编程接口。
对于不支持的旧浏览器中止控制器
,您可以:
- 提供您自己的聚乙烯填料
中止控制器
如果你还想放弃。
- 忽略它,如下例所示。
例子
常数控制器=类型AbortController===“未定义”?未定义:新建AbortController();apiFetch({path:'/wp/v2/posts',signal:controller?.signal}).catch((错误)=>{//如果浏览器不支持AbortController,则以下代码将永远不会记录。//然而,在大多数情况下,这应该是好的,因为它可以被视为是一种渐进性增强。if(error.name===“中止错误”){console.log('请求已中止');}});控制器?。中止();
这个api提取
该包支持中间件。中间件是可以用来包装api获取
调用对API请求执行任何预/后处理。
例子
从“@wordpress/api-fetch”导入apiFetch;apiFetch.use((选项,下一步)=>{const start=日期.now();const结果=下一个(选项);结果。那么(()=>{console.log('请求花费了'+(Date.now()-start)+'ms');} );返回结果;} );
这个api提取
包提供了内置的中间件,您可以使用它来提供现时
和一个习惯rootURL
.
Nonce中间件
从“@wordpress/api-fetch”导入apiFetch;const nonce=“nonce值”;apiFetch.use(apiFech.createNonceMiddleware(nonce));
返回的函数创建非ceMiddleware
包括一个现时
与活动使用的nonce相对应的属性。如果要使用新的nonce值,也可以分配给此属性。
根URL中间件
从“@wordpress/api-fetch”导入apiFetch;const rootURL='http://my-wordpress-site/wp-json/';apiFetch.use(apiFech.createRootURLMiddleware(rootURL));
这个api提取
软件包使用窗口.fetch
用于发出请求,但可以通过使用setFetchHandler(设置获取处理程序)
方法。自定义提取处理程序将接收选项
传递给api获取
电话。
例子
下面的示例使用自定义获取处理程序生成所有请求公理
.
从“@wordpress/api-fetch”导入apiFetch;从“axios”导入axios;apiFetch.setFetchHandler((选项)=>{const{url,path,data,method}=选项;返回公理({url:url||路径,方法,数据,} );} );
这是古腾堡项目的一部分。该项目组织为单回购。它由多个独立的软件包组成,每个包都有特定的用途。此monorepo中的包发布到净现值并由使用WordPress(文字出版社)以及其他软件项目。
要了解更多关于对这个包或古腾堡整体贡献的信息,请阅读该项目的主要内容投稿人指南.