Services模块为Drupal站点提供了实现Web服务的能力。
Services很流行,可以同REST, XMLRPC, JSON以及SOAP协同工作。
然而,在上星期的一次培训中,当被问到Services的问题时,我意识到,问题产生的原因在于——这个模块几乎没有清晰的可用的文档。
所以我决定写一篇Services模块的入门教程。
下面就是利用Services为Drupal站点建立REST API的五个步骤:
1. 安装
基础的REST API需要三个模块的支持:
如果你要为API添加认证支持,那么还需要添加一个模块,例如OAuth。
你可能需要做一件无聊的事情:测试这几个模块的不同版本。我在Drupal.org上找到一篇文章,其中提到需要用部分旧版本的模块,来避免一些bug。
当你启用这些模块后,需要选择服务器的类型。除了REST和XMLRPC之外的其他服务模块例如SOAP,需要在Drupal.org上获得。
2. 创建Server
-
进入
Structure > Services
-
点击 Add
-
输入机读名称。
-
选择服务器
-
输入服务端点路径(Path to endpoint),这一路径会变成这个Server的URL的一部分。
-
保存
-
点击
Edit Resources
-
这里可以编辑Server的各种配置项目
3. 服务器配置
- Server Tab页面让你可以为Server选择(响应)格式以及(请求的)解析器类型。
认证(Authentication) Tab让你可以对Server进行访问控制,下面以OAuth举例说明:
-
安装OAuth
-
导航至
Configuration > OAuth > Add Context
-
设置OAuth连接的详细信息
-
进入
Structure > Services > Edit Resources
-
检查OAuth的认证框:
-
点击认证Tab(Authentication)
-
选择OAuth上下文(Context)
最后,资源Tab允许你控制服务器的功能范围。本例中,我们要确定按下图进行选择。
4. 创建视图
-
进入
Structure > Views > Add New View
-
创建一个视图,只使用Block模式:
-
点击继续,编辑
-
在views顶部点击Add,添加Servies。
你会看到一条消息:Display "Services" uses a path but the path is undefined.
(显示Services需要使用的路径未经定义)
- 点击Path右边的斜线进行编辑,来解决这一问题
- 输入路径,例如”myrestapi”:
-
查看预览。
-
保存View。
然后你就可以利用Views的功能对其进行定制了。
5. 查看Server
最后一步就是查看Server的输出。没有自动提供的连接,只能通过下面的网址来查看:
/path-to-endpoint/views/view-machine-name/
在我的例子中是这样定义的:
-
path-to-endpoint:我在第二部分中设置为“myrestapi”.
-
view-machine-name:我给这个view命名为”myrestapi”,可以通过编辑view并查看URL来确定网址的唯一性。
所以,访问我的Server的URL: /myrestapi/views/myrestapi/
下面是返回内容:
##更多内容
Drupal.org上最好的文档,相较本文来说,提供了更多细节,这篇文章也是Services文档的一部分.
如果你希望使用REST API导入数据,我找到的最好教程拱你参考。
Youtube上还提供了一个很好的视频:
https://www.youtube.com/watch?v=xxWWq4wwqp4
文章来源于互联网:Drupal Services模块入门教程