api - 如何使用 grails 构建数据库抽象层/API/中间件项目,我的看法是否可行?

标签 api rest grails groovy middleware

我正在考虑新项目计划中的新软件设计模式。我想创建一个 grails API 项目,它使用内置的 rest API 功能抽象化对数据库层的访问。

目标是拥有一个仅充当 API 的中间件和使用此 REST API 的一些其他应用程序(前端、移动前端、应用程序...)。

  1. 我问自己,使用这种模式是否会遇到问题或更复杂的开发环境?

  2. 什么是验证?这对 grails 的 REST API 功能是否没有问题(我需要向用户显示错误)?

  3. 是否有可能在我的应用程序项目中创建 REST 客户端,其作用类似于域类对象?所以每个人都可以使用 grails(也包括插件),因为它是一个普通的 grails 项目。

  4. 这个模式有什么已知的问题吗?

最佳答案

客户端通过 REST API 访问服务器端的单页应用程序非常常见。请记住,Grails marshall 功能接受 Map 而不是域类,因此您可以自定义响应。例如:

def save() {
  ...
  if(instance.hasErrors()) {
    //you can respond the instance errors in any way that you like
    respond([success: false, errors: instance.errors])
  }
  ...
}

如果您像您所说的那样有很多不同的客户端——移动、前端甚至桌面,那么 REST 是实现业务逻辑的好方法。

Is there a possibility to create REST clients in my app projects wich act like domain class objects? So everyone could work with grails (also plugins) as it would be a normal grails project.

正如 Andew 所说,Grails 有 gorm-rest-client可以用来那个。如果您的客户端与 Grails 不同,那么您可能需要不同的实现,但 REST 客户端也已经存在于其他语言和框架中。

关于api - 如何使用 grails 构建数据库抽象层/API/中间件项目,我的看法是否可行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21290413/

相关文章:

php - 为 Symfony 约束验证失败设置 http 代码

rest - Docker Maven 插件

ruby-on-rails-3 - 如何在同一个 Rails 应用程序中同时使用火箭裤和门卫?

ios - Dropbox usersGetCurrentAccount 无成员编译错误

api - YouTube 数据 API - 处理客户端 secret

javascript - 维护 REST API 调用状态

maven - 如何将插件作为jar添加到Grails项目

java - 通过公共(public) API 导出非公共(public)类型

grails 3 gsp 使用域对象约束失败

grails - 如何为 Glassfish 生成grails jar组件