Questions tagged «restful»

1
使用Rest V2(WP4.7),如何限制某些RESTFUL动词?
我的目标是限制每种自定义帖子类型的某些RESTUL动词。例如,给定一个Vocabulary自定义帖子类型,我想说: 权限矩阵 +-------+---+----------+ |index | X | GET | |show | O | GET | |create | X | POST | |update | X | PATCH/PUT| |delete | X | DELETE | +-------+---+----------+ V2似乎没有提供这种级别的控制。我已经浏览了源代码,从我所看到的内容来看,没有任何挂钩/过滤器可用于更改权限。 我当前的解决方案如下。它损害了一个类,您可以在该类中针对允许的操作加载自定义帖子类型的矩阵。然后可以在rest_prepare_vocabulary过滤器中调用此方法,如果权限不匹配,则会破坏响应。 问题 我觉得这不是一个合理的解决方案。这意味着权限在两个位置(一个仍在应用中,处于核心位置)和我的过滤器中得到解决。 理想情况下,它将位于配置级别,即定义自定义帖子类型的位置。 换句话说,我宁愿传递规则(沿的线条exclude_from_search,publicly_queryable等等),而不是执行后查询“喀嚓”。 当前解决方案(可行但不理想) Access.php class Access { function __construct($permissions) { $this->permissions = $permissions; …

1
使用重写API构造RESTful URL
我正在尝试为RESTful API生成重写规则。我只想看看是否有比写出所有可能的重写组合更好的方法来完成这项工作。 好的,所以我有4个查询变量要在URL中说明 指示符 国家 响应 调查 基本网址为www.example.com/some-page/ 4个变量的顺序将保持一致,但某些查询变量是可选的。 所以我可以... /indicator/{indicator value}/country/{country value}/response/{response value}/survey/{survey value}/ 或...(否/ response /) /indicator/{indicator value}/country/{country value}/survey/{survey value}/ 要么... /indicator/{indicator value}/country/{country value}/ 是否有比过滤rewrite_rules_array和添加手动创建的重写规则数组更好的方法呢?将add_rewrite_endpoint()rewrite_endpoint或者add_rewrite_tag()是任何使用吗?

4
SSO /身份验证与外部“目录服务”集成
我将开始为客户设计原型-所需的功能之一是与内部用户身份验证/注册系统集成。 该系统将充当权威用户数据库,并提供RESTful接口,用于创建新用户和验证有效用户。 我需要能够在WP中创建新用户,并且在该过程中需要调用外部身份验证API以创建/验证该用户。 一个有效用户但不为WP所知的人应该能够登录以发表评论,而无需自己在WP网站上进行注册。 登录整个网站的人也应该自动登录WordPress。 我在想以下是要走的路。 对于(1)-是否可以使用注册钩? 对于(2)-我假设我钩住了身份验证过滤器-即当有人尝试登录时,我将其捕获,调用了外部系统,然后处理WP登录或将其重定向到注册过程,其中( 1)需要。 对于(3)-阅读主站点设置的登录cookie,然后继续(2)? 我想我还需要在用户和usermeta表中插入一条记录。 因此,以上是否有意义-我是否未考虑任何事情。任何人都有很好的资源来帮助解决此问题(@hakre-我看到您已经在此方面做了一些工作!!)。 更新资料 因此,我仍然对此有点b之以鼻,本质上讲,我试图插入身份验证过滤器,并将其用于: 检查是否设置了“主”站点的登录cookie,如果已设置,则根据其身份验证API重新验证,如果有效wp_signon(),则使用主站点cookie中包含的信息(电子邮件和哈希密码)强制使用WP登录。作为WP的凭证 如果未设置Cookie,请重定向到主站点登录页面并获得登录名/注册名,然后返回到步骤1 如果存在经过身份验证的主站点用户时没有WP用户,请创建它,然后进行“透明”登录(即,使用户看不到WP登录表单) 基本上,我想完全将WP登录表单隐藏起来,而这些用户只打算主要发表评论,然后找到一种方法,允许作者和管理员直接访问它。 进度相当缓慢,以下是我可以使用的一些帮助: 认证过滤器是正确使用的过滤器吗?我似乎并没有在所有情况下都调用它-例如,meta小部件显示登录/注销链接而未启用身份验证钩子 我可以wp_signon()返回一个WP_User对象(表示成功),但它不会影响登录状态-即即使刷新后,元窗口小部件仍将显示在“登录”中。 任何帮助表示感谢:)

2
使用WP-Rest-API v2添加媒体
我需要您的帮助,以通过Wp-rest-api v2和Oauth2身份验证在我的wordpress博客中上传媒体图像。 我在REST API文档中没有找到发送图像数据的方式(字段名称,发送模式...?)。 require('OAuth2/Client.php'); require('OAuth2/GrantType/IGrantType.php'); require('OAuth2/GrantType/AuthorizationCode.php'); const CLIENT_ID = 'XXX'; const CLIENT_SECRET = 'XX'; const REDIRECT_URI = 'http://127.0.0.1/test_api_wp/test.php'; const AUTHORIZATION_ENDPOINT = 'http://wordpress.local/oauth/authorize'; const TOKEN_ENDPOINT = 'http://wordpress.local/oauth/token'; $client = new OAuth2\Client(CLIENT_ID, CLIENT_SECRET); if (!isset($_GET['code'])) { $auth_url = $client->getAuthenticationUrl(AUTHORIZATION_ENDPOINT, REDIRECT_URI); header('Location: ' . $auth_url); die('Redirect'); } else { $params = array('code' …
10 media  restful 

3
构建自定义的REST API
我有一个WordPress.org网站,该网站接受用户输入,搜索自定义数据库并显示查询结果。我使用wpdb类进行此工作。现在,我正在尝试使它适用于android应用。 据我了解,构建RESTful服务器是此类事情的当前“最佳实践”。我研究了一些可以帮助我完成此操作的插件,然后发现: json-rest-api-在我看来,这仅公开了WordPress的核心功能(即帖子,页面,用户等),而我看不到如何使它对非默认表执行自定义查询。 这篇博客文章说,wp mvc完全可以实现我想要的功能,只不过它已经两年多没有更新了,所以可以将它排除在外。 也有Jetpack,但据我所见,json-rest-api是它的更新版本,似乎也只提供了核心功能。 有没有办法使这些插件中的任何一个都能用于自定义端点?还是我还没有找到其他插件? 如果我不使用插件,我认为我必须自己动手。我可以从头开始(使用做到这一点wpdb,msqli或东西),或与API的帮助,如Restler。 如果我自己动手,是否应该在主题中创建模板,是否在其中包含REST并将该主题分配给仪表板中的页面?还是为此而让另一台服务器与WordPress分开运行会更好? 据我所知,这些是我唯一的选择。我想知道推荐的最佳做法是什么。我发现很难相信没有其他人能做到这一点。有什么我忽略的选择吗?
10 plugins  mobile  json  restful 

2
通过多个元键查询WP REST API v2
使用REST API的v2,我想通过多个元键查询一些帖子。使用v1,我能够像这样设置url的格式,&filter[meta_value][month]=12&[meta_value][year]=2015并且可以正常工作(在将元值公开给API之后)。 现在使用v2,我只能通过使用此GitHub线程上列出的方法来使它起作用:https : //github.com/WP-API/WP-API/issues/1599#issuecomment-161166805 基本上,使用以下rest_query_vars过滤器添加了meta字段: add_filter( 'rest_query_vars', 'flux_allow_meta_query' ); function flux_allow_meta_query( $valid_vars ) { $valid_vars = array_merge( $valid_vars, array( 'meta_key', 'meta_value', 'meta_compare' ) ); return $valid_vars; } 这样,我就可以使用url这样的网址来过滤一个元键wp-json/wp/v2/posts?filter[meta_key]=test&filter[meta_value]=on。 但是,听起来对多个元键进行过滤的唯一方法是编写自定义过滤器。有人可以指出我这样做的正确方向吗?


2
将Backbone与WordPress AJAX API结合使用
我正在尝试使用Backbone构建一个简单的TODO插件,并且遇到了AJAX API问题。为了获得正确的AJAX回调,您必须像这样传递“ action”参数: admin-ajax.php?action = get_todos 对于Backbone中的GET方法,它工作正常。但是,在使用DELETE时,Backbone默认会使用如下所示的URL: admin-ajax.php?action = get_todos / 9 其中“ 9”是要删除的待办事项的ID。通过添加此ID,可以中断WordPress端的AJAX调用。我可以手动覆盖每个方法的URL,但我想知道是否还有一种更优雅的方法来使AJAX API与Backbone一起使用。 我创建了一个演示插件,该插件显示了我遇到的具体问题。加载设置页面,然后在观看网络检查器的同时单击任意X,以查看来自WordPress的0值AJAX结果。 https://github.com/hereswhatidid/wordpress-todo-backbone-demo
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.