@wordpress/api-回迁

用于发出WordPress REST API请求的实用程序。它是一个包装窗口.fetch.

安装

安装模块

npm install@wordpress/api-fetch--保存

此包假定您的代码将在2015年+环境。如果您使用的环境对此类语言功能和API的支持有限或不支持,您应该包括polyfill发货@wordpress/babel预设在代码中。

用法

GET(获取)

从“@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(文字出版社)以及其他软件项目。

要了解更多关于对这个包或古腾堡整体贡献的信息,请阅读该项目的主要内容投稿人指南.