Ant*_*ony 5 api rest grails restful-authentication
我已经构建了我的第一个grails应用程序.我的URL映射是默认应用程序提供的:
static mappings = {
"/$controller/$action?/$id?"{
constraints {
// apply constraints here
}
}
"/"(view:"/index")
"500"(view:'/error')
}
Run Code Online (Sandbox Code Playgroud)
塞纳里奥
我有一个名为控制器,ColorController用行动save和list.它只是做这样的事情:
def save () {
def colorInstance = new Color(params)
colorInstance.save(flush: true)
}
def list () {
[colorList: Color.list, colorTotal: Color.count()]
}
Run Code Online (Sandbox Code Playgroud)
我想为这些操作构建一个简单的API.
问题
http://<domain>/<app>/rest/controller/action)在查看下面的观点/答案之前,我建议先访问这个SO Question,以了解 Grails 中的 RESTful WS 的基本了解。
意见:
“保存操作应接受 JSON 格式的参数,并在记录保存时提供成功消息” - 保存映射到 POST RESTful。不是将 JSON 主体绑定到params它,而是绑定到request. 为了访问 JSON 对象,您只需request.JSON在操作方法中使用。
request.JSON instanceof JSONObject
list()操作映射到 GET 请求,您可以将映射呈现为 JSON,如下list()所示//控制器列表()
import grails.converter.JSON
def list () {
[colorList: Color.list, colorTotal: Color.count()] as JSON
}
Run Code Online (Sandbox Code Playgroud)
问题解答:-
Color在本例中),而不应该关心底层controller或action. 服务器端逻辑应该从客户端抽象出来。URL 映射是客户端使用的请求形式。我的资源 url 映射中会有类似的内容Color。/color/$id?(resource: "color")
或者
/color/$id?(controller: 'color'){
action = [GET: "list", POST: "save"]
}
Run Code Online (Sandbox Code Playgroud)
我应该为我的 API 创建一个单独的控制器吗?- 取决于应用程序的设计方式。您还可以将上述控制器作为 API。例如,目前我正在开发一个 Grails 应用程序,该应用程序AngularJS在前端使用,连接到 Grails 应用程序 RESTFully。为了实现这一点,我有一个RestClientController作为 Angular 的 API 的工具。在同一个应用程序中拥有 REST API 的基本原理是,将来我们可以将底层服务公开给外部客户端,而不是Angular应用程序本身中存在的客户端。
我正在使用 spring security 插件进行身份验证。但在某些时候我可能也想验证restful api。有哪些解决方案?- 您也可以在这里使用 Spring Security。就我而言,我正在使用该插件,并controller通过使用该插件的带注释的组件来保护它@Secured。我OAuth还启用了自定义授权,可以与公司范围内的 LDAP 和 AD 组进行交互。
如果我使用相同的控制器,我如何修改这些简单的操作来完成我需要的操作。- 我想你现在已经得到了这个问题的答案(在经历了我上面提到的SO问题之后)。这是我的观点,controller actions可以路由到适当的service类,该类根据请求参数进行业务实现。
例如,
//Action
def show(){
if(params.id){
colorService.getColor()
} else {
colorService.searchColor()
}
}
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,url 映射将为/color/123或/color。在前一种情况下,它将获取,color而在后一种情况下,它将搜索颜色
| 归档时间: |
|
| 查看次数: |
1610 次 |
| 最近记录: |