当前位置: 首页 > 知识库问答 >
问题:

MicronoAUT-内部和外部API

锺离浩慨
2023-03-14

我正在寻找一种方法,在一个微服务中有一个用于公共访问的应用编程接口,另一个用于其他私有服务的内部应用编程接口。

当然,这在不同的URL中是可能的。但看起来好像合并了swagger/open api描述页面。

公共和私有API应该有一个单独的招摇页面。来自互联网的人不能看到内部API描述。只有公共的。

有想法吗?

共有1个答案

宋臻
2023-03-14

如在评论中所建议的,具有两个micronaut应用。

因此,如果您使用gradle,只需创建一个gradle项目,其中包含两个子模块,如下所示:

MyAppProject
-> PublicAPIApp (only the public api)
-> MyApp (the public and the private api)

您可以在一个简单的docker compose文件中设置所有内容。如果你将“MyApp”隐藏在一个单独的docker网络中,而该网络无法从外部访问,那么你就可以了。

如果你在云中的某个地方运行你的应用程序,云提供商也会提供一些东西,例如Azure Api管理(https://azure.microsoft.com/de-de/services/api-management/)这正是你想要的。在这种情况下,只有一个micronaut应用程序就足够了,其他一切都由api管理层完成。

在micronaut本身(一个应用程序仅此而已)中,不可能在两个端口上运行应用程序。但是如果你使用安全性(你真的应该这样做),你可以使用几个角色或保护你的私有api,而让公共api不安全。Swagger等等,无论如何都会提供api,但在大多数情况下,这应该不成问题。如果你的应用编程接口用户知道,还有什么是可能的,但只有在你同意的情况下才允许这样做。

如你所见。没有“silver bulett”

如果您只需要一个应用程序,请使用服务或安全性如果您不想使用服务或安全性,则必须使用两个应用程序。

 类似资料:
  • 问题内容: 我正在尝试使用docker-compose启动kafka服务,并且应该可以在docker内部和外部进行访问。因此,应该在内部和外部设置合适的广告客户: 问题是,当我尝试从群集外部进行连接时,节点名称不是127.0.0.1,而是内部主机名: 这不是KAFKA_ADVERTISED_LISTENERS和KAFKA_LISTENERS处理这种情况的目的吗?我尝试设置KAFKA_ADVERTI

  • 我刚刚开始学习React和JavaScript。在我阅读了留档和教程之后,我看了一下示例项目,并试图整理我还没有得到的内容。 然后我看到有一些函数是在函数内部定义的,还有一些函数是在函数外部定义的。 例如,在之外: 和内部render()。。。 为什么它们看起来如此不同,为什么你想在内部和外部有一些函数? 编辑: 之外的函数的另一个示例: EDIT2:在另一个线程中,有人回答说,如果函数背后的逻辑

  • 本文向大家介绍hive内部表和外部表的区别相关面试题,主要包含被问及hive内部表和外部表的区别时的应答技巧和注意事项,需要的朋友参考一下 解答: 内部表:加载数据到hive所在的hdfs目录,删除时,元数据和数据文件都删除 外部表:不加载数据到hive所在的hdfs目录,删除时,只删除表结构。

  • 我想打开文件管理器的一个按钮,点击,并想要获得一个特定项目的路径,选择该特定项目。

  • 本文向大家介绍内部和外部碎片化之间的区别,包括了内部和外部碎片化之间的区别的使用技巧和注意事项,需要的朋友参考一下 在这篇文章中,我们将了解内部和外部碎片化之间的区别- 内部碎片 分配的内存和所需空间之间的差异称为内部碎片。 在这种分段中,使用固定大小的存储块来处理数据。 当某个方法或过程大于所需的内存时,将发生此过程。 内部分段使用的方法是“最佳拟合”块。 当内存被划分为固定大小的分区时,会发生

  • 我有一个Xperia Neo V没有任何内部存储--只有一个SD卡作为外部存储,而Galaxy S3有内部和外部存储。 使用此函数时只能访问内部存储(S3)上的文件,但Xperia Neo V没有问题。 如何访问内部和外部存储上的文件?