在Grails中,要在XML中包含相关实体,可以使用RESTful API。以下是一个简单的步骤来实现这个目标:
grails install-plugin rest
grails install-plugin restful-authentication
Person
。在grails-app/domain
目录下创建一个名为Person.groovy
的文件,并添加以下内容:class Person {
String name
String email
static constraints = {
name blank: false
email blank: false, email: true
}
}
PersonController
控制器,使用以下命令:grails generate-controller Person
PersonController
中添加以下内容:class PersonController {
static allowedMethods = [save: "POST", update: "PUT", delete: "DELETE"]
def index() {
render Person.list() as XML
}
def show() {
Person person = Person.get(params.id)
if (!person) {
render status: 404
return
}
render person as XML
}
def create() {
Person person = new Person(request.XML)
if (person.save()) {
response.status = 201
render person as XML
} else {
render status: 400
}
}
def update() {
Person person = Person.get(params.id)
if (!person) {
render status: 404
return
}
person.properties = request.XML
if (person.save()) {
render person as XML
} else {
render status: 400
}
}
def delete() {
Person person = Person.get(params.id)
if (!person) {
render status: 404
return
}
person.delete()
render status: 204
}
}
grails-app/conf/UrlMappings.groovy
文件中添加以下内容:class UrlMappings {
static mappings = {
"/$controller/$action?/$id?"{
constraints {
// apply constraints here
}
}
"/api/people"(resources: "person")
}
}
现在,您已经创建了一个RESTful API,可以通过以下方式与实体进行交互:
/api/people
以获取所有人员的列表。/api/people/{id}
以获取具有特定ID的人员。/api/people
以创建新的人员。/api/people/{id}
以更新具有特定ID的人员。/api/people/{id}
以删除具有特定ID的人员。在这个例子中,我们使用了Grails的内置XML支持,因此所有的请求和响应都将以XML格式发送和接收。如果您想使用JSON,可以在请求头中添加Accept: application/json
。
领取专属 10元无门槛券
手把手带您无忧上云