Play framework and REST

6

目前为止,我很喜欢Play框架,并希望向社区请教有关开发出优秀REST应用的成功和失败案例。我在Django方面有丰富的经验,并考虑将一些方法论从http://django-tastypie.readthedocs.org/en/latest/?redir API创建包应用到Play中。

您是否找到了一个好的相当于通过API包公开模型的解决方案,具有灵活的设置限制流量、数据输出白名单、数据输出格式化、自动API URL路由等功能?

2个回答

8
不久之前,在play google group上有关于暴露模型的讨论。这是一个相当苛刻的讨论,因为听众完全分成了两组:
- 非常希望并绝对想要此功能的人。
- 认为直接在表示层公开模型是一种非常糟糕(甚至危险)的方式,因为它会破坏MVC设计并直接暴露您的业务数据,存在潜在的安全或数据完整性问题等等...

我不属于任何一组,仅客观地考虑这个问题...
当看到这个Django API时,我认为如果您可以控制如何公开您的模型以及要公开什么内容,那么这并不是什么大问题。 但我不知道Play!中是否有类似的功能...我不知道开始讨论的那个人是否曾经完成他的模块...反正CRUD模块已经做了这样的事情,因为它会内省您的模型字段以公开CRUD界面...因此,将其作为REST公开只是一种表示层(和一些工作)的问题。在我看来。


您可以通过自定义视图来增强CRUD模块,为您的模型提供REST API。然而,不建议直接使用CRUD模块,因为:1.它无法处理非简单模型。2.它无法处理安全性问题。 - wyz

7

这里有几个模块,可以帮助您从Play!应用程序中构建REST Web服务。

RESTEasy play module

RESTEasy Play模块允许您在Play框架中使用RESTEasy定义JAX-RS RESTful Web服务。

以及

RESTEasy-CRUD Play module

RESTEasy-CRUD Play模块允许您在Play框架中使用RESTEasy自动生成一组CRUD JAX-RS RESTful Web服务。

希望对您有所帮助。


1
作为评论返回已翻译的文本:第一个链接已更改为链接,感谢@opensas。 - gencay
有人在Play 2.x中使用过RESTEasy Play模块吗? - pastafarian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接