我们正在开发一个社交网站。
我们遵循多层应用程序结构,即我们编写了webserivces(REST)(这些日子很常见),并为此开发了几个客户端。
由于我们已经编写了需要公开的REST Web服务,并且必须为此创建API文档,因此如果任何人正在开发任何客户端应用程序必须能够清楚地知道什么服务需要什么样的输入( JSON)并返回什么类型的输出(JSON)。
我们正在使用基于Spring的RESTful Web服务,它将使用相应的MessageConvertors将对象转换为JSON表示,将JSON转换为对象。
我的关注:
可读:为了使暴露的Web服务对于一个开发客户端更具可读性,我们必须具有不同的输入/输出类型(即,每种请求/响应的不同类),以便生成的API将清楚地告知特定服务期望的json输入类型以及输出json的内容。
类的数量:当我们继续为每个请求和响应类型创建不同的类时,类的数量将增加,因此在运行时将加载更多的类,我们正在获得permgen:OutOfMemoryException(不确定是因为更多的类)。
这是什么出路?
处理此问题的最佳方法是什么?
我是网络应用程序开发的新手,而不是专业人士,所以不确定哪种方式最好。
答案 0 :(得分:1)
您没有 拥有不同的类来表示不同的输入和输出,只要清楚地记录结构是什么,它就可以重复使用多次。
除非数以千计的网络服务具有大量复杂的输入/输出并在小型VM上运行,否则permgen错误很可能不是由于这一点。
我假设spring使用JAX-RS等注释来提供休息服务,在这种情况下你可以根据它生成文档。
作为旁注:基于REST的界面总是一件好事,但我建议支持JSON和XML。前者对网站很有意思,而后者很有意思...其他任何东西。