当前位置: 首页 > 知识库问答 >
问题:

WP Rest API自定义endpoint-JSON返回NULL

师成弘
2023-03-14

我正在尝试减少使用Rest API时返回的JSON。我可以在查询中使用“_embed”参数让它工作,但是它返回了大量我不需要的数据。因此,根据WP最佳实践,我想设置一个自定义endpoint,并在它的回调中调用一个函数来输出我需要的三个项目。看起来很简单,但是当我尝试的时候,它对所有的节点都返回NULL。在我的functions.php档案中,我有:

function get_all_posts( WP_REST_Request $request ) {
    return [
        'id'        => $data->data['id'],
        'title'     => $data->data['title']['rendered'],
        'link'      => $data->data['link'],
        'date'      => $data->data['date'], //not correct
        //similar calls to get thumbnail image and category
    ];
}

然后路由并回调自定义endpoint

add_action( 'rest_api_init', function () {
    register_rest_route( 'mydata/v1', '/all', array(
        'methods' => 'GET',
        'callback' => 'get_all_posts',
    ) );
} );

当我使用URL-https://somedomain.com/blog/wp-json/mydata/v1/all时,我在页面上看到以下内容:

{
    "id": null,
    "title": null,
    "link": null
}

共有1个答案

楚昊明
2023-03-14

您可以将字段参数传递给API,如下所示:

[url]/wp-json/wp/v2/tags?fields=id,name 

请注意,这是示例 /tags,您可以使用 /categories等,并且仍然指定字段。我建议安装JSONView chrome插件,以便在您测试endpoint时可以读取JSON的转储。

 类似资料:
  • TL;DR:如何选择一个WP REST API自定义endpoint的响应的每一点信息? 长版 如果我想使用WP REST API构建自定义endpoint - 从不同的帖子类型发送特定帖子数据 - 按照手册中的示例,我得到了这个: 但是get_post()函数没有返回一些数据,如果您希望在页面中显示帖子,这些数据是非常有用的(例如类别id、特色图片)。那么,我如何构建一个自定义endpoint来

  • 如何在不同的springboot控制器方法中使用不同的json序列化?假设我有 在一些控制器方法中,我只想以JSON的形式返回一个家伙的名字。在某些方法中,我希望以JSON的形式返回名称和年龄。在某些方法中,我只想以JSON的形式返回列表。注释POJO中的属性是没有意义的,因为每个方法都有不同的返回规范······

  • 我有一个用户元的自定义endpoint,我已成功注册到WP REST API并为其创建了自定义endpoint。然而,每当我从我的单页应用程序(使用的JS框架是Vue)发出GET和POST请求时,返回值为“false” 我怀疑这是由于使用JWT Authoration for WP REST API插件存在一些授权问题而发生的。 以下是我在functions.php应用程序中采取的步骤: 首先,我

  • 改变json输出策略 默认使用阿里的fastjson进行json输出 JSON.toJSONString(obj) 如果要更换输出策略,操作方式如下: @Override protected void initApiConfig(ApiConfig apiConfig) { ... // 自定义json格式输出,将null字符串变成"" apiConfig.setJson

  • 网关默认对业务结果进行合并,然后返回统一的格式。 针对alipay.story.find接口,微服务端返回结果如下: { "name": "白雪公主", "id": 1, "gmtCreate": 1554193987378 } 网关合并后,最终结果如下 { "alipay_story_find_response": { "msg": "Succe

  • 问题内容: 我试图用返回自定义json,但总是得到响应。 如果我删除所有内容,我将获得标准json数据的正确响应。我做错了什么? 问题答案: 如果您不需要ModelViewSet而只想在GET请求上使用自定义JSON 您也可以使用,不需要模型 和 使用ModelViewSet 您已将自定义JSON放入get_queryset中,这是错误的。如果您想使用,仅此一项就足够了: 这种带有默认实现,,,,