我正在使用Java Backed Webscript放入Alfresco并通过REST调用它。此Webscript必须执行一组3个操作(查找路径,创建文件夹并上载文档)。
我读到了这一点,并发现类似的例子来执行此操作抛出本机Alfresco API,使用Repository或ServiceRegistry类的getFileFolderService,getContentService等方法。全部是Java,没有javascript。
但我宁愿在我的Webscript中使用REST调用而不是Alfresco API。我认为,如果已经存在Webscripts来执行这些操作,则更容易调用它们而不是使用Alfresco API方法来尝试这样做。如果API在将来的版本中发生变化,那么REST调用将保持不变。但我是新来的,我不知道我是不是错了。
总结:在我支持的webscript中,一个接一个地做这3个操作,哪个更好,为什么?使用本机API方法或对现有的webscripts使用REST调用吗?
如果我尝试做第二种选择,可以这样做吗?在我的Java Webscript中使用HttpClient类和GetMethod / PostMethod进行REST调用可能是Rest调用的最佳选择吗?或者这可能会给我带来麻烦?因为我使用Rest调用我支持的webscript,然后再调用另一个webscripts。
非常感谢!
答案 0 :(得分:1)
我认为这样做是不好的做法。在很多Alfresco版本中,默认服务并没有改变。即使他们改变了,他们仍然会弃用方法。
其余的api也改变了。如果你想建立一个升级证明系统,我认为最好坚持使用Webservices(自2.x版以来没有改变)或者使用CMIS。 但是将代码放在Alfresco中是没有意义的,所以将它放在界面中会更好。
我个人只是坚持使用JavaScript API并没有太大改变。是的,在其中启用了更多功能,但搜索的默认操作和CRUD保持不变。
你甚至可以选择二人组:让你的Java Backendscript做任何奇特的事情并将结果发送给je JavaScript控制器并做默认的事情。
答案 1 :(得分:0)
对您已经处理的进程执行HTTP调用通常是一个非常糟糕的主意。它更慢,更复杂,容易出错,占用更多资源(两个线程),在您的情况下,您甚至会失去事务安全性。想象一下,最后一次呼叫因某种原因失败了。此外,您很可能必须自己处理安全上下文传播。使用本机公共API,它将是简单,安全和稳定的。