为什么以及在哪种情况下使用远程服务?

时间:2015-08-04 16:10:36

标签: liferay hook liferay-6 liferay-service-builder

作为服务构建器的一部分,我多次使用本地服务,但我从未使用过远程服务。我从以下教程http://www.liferay.com/documentation/liferay-portal/6.1/development/-/ai/writing-the-remote-service-class-liferay-portal-6-1-dev-guide-en了解了远程服务。

我仍然没有完全理解我们使用这些远程服务的目的和确切位置。

任何人都可以通过简单的实时示例解释我们使用这些远程服务的地点和原因。

1 个答案:

答案 0 :(得分:2)

本地服务只能由Liferay本身或Liferay应用程序(例如,Liferay portlet)调用。 任何可以访问Liferay门户的应用程序(例如,通过互联网)都可以调用远程服务。

因此,例如,如果您想创建可以访问Liferay的书签API的桌面或移动应用程序,则需要调用书签远程服务:http://localhost:8080/api/jsonws?contextName=bookmarks

同样,如果您通过Service Builder创建自定义Liferay实体,并且您希望允许开发人员创建可与您的实体交互的桌面或移动客户端(例如,对您的实体执行CRUD操作),那么您需要创建远程服务。

此外,Liferay的最佳做法和惯例是不向本地服务添加权限检查,而只向远程服务添加权限检查。即使您不预期任何非Liferay应用程序需要访问您的服务,您仍应考虑创建远程服务,如果只是为了添加权限检查。 (您的远程服务将包含权限检查代码,然后将调用本地服务。这是Liferay中的常见模式。)

有关详细信息,请参阅https://dev.liferay.com/develop/tutorials/-/knowledge_base/6-2/creating-remote-services

相关问题