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

Why and in which scenarios the Remote services used?

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

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

任何人都可以用简单的实时示例解释我们在哪里以及为什么使用这些远程服务。

本地服务只能由 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