wso2 API 端点创建失败:找不到 404 资源

wso2 API Endpoint creation failed: 404 ressource not found

我正在尝试使用 wso2 API_Manager 创建一个 REST API 以从 Postgres 数据库中收集数据(学习目的)。我很难这样做,我想知道是否:

系统设置

我使用了这个 official docker image,在 /repository/components/lib/ 中添加了 postgres jdbc jar 并在 /repository/conf/datasources/master-datasources.xml 中添加了以下内容:

<datasource>
     <name>s0m3dAtabas3</name>
     <description>The db used for testing purposes</description>
     <definition type="RDBMS">
        <configuration>
           <url>jdbc:postgresql://sandor_postgres:5432/s0m3dAtabas3</url>
           <driverClassName>org.postgresql.Driver</driverClassName>
           <username>s0m3us3rfr0mdAtAMaj0r</username>
           <password>N0t5uchAs1mple1</password>
           <maxActive>80</maxActive>
           <minIdle>5</minIdle>
           <maxWait>60000</maxWait>
           <defaultAutoCommit>false</defaultAutoCommit>
           <testOnBorrow>true</testOnBorrow>
           <validationInterval>30000</validationInterval>
        </configuration>
     </definition>
</datasource>

我确保可以使用这些凭据从 wso2 访问名为 sandor_postgres 的 postgres 容器。在这个数据库中,我有一个名为 somethingtable。该图像带有以下 UI:

图形API创作

我首先遵循了 WorldBank 教程,它看起来 crystal 很清楚(尽管我不太确定数据的来源)。然后我试着去适应它。

第 1 步:设计

我使用数据库名称作为上下文 (s0m3dAtabas3) v.1.0.0。由于 table 被称为 something,因此我最终得到的 url 模式是 /s0m3dAtabas3/1.0.0/something

第 2 步:实施

这就是事情开始变得混乱的地方。无论我在 Endpoint(端点类型 REST)中使用的资源路径如何,我都会收到 404 并且日志不是很有用

INFO - InboundDBSyncRequestEvent Running DB sync task.
INFO - LogMediator STATUS = Message dispatched to the main sequence. Invalid URL., RESOURCE = /s0m3dAtabas3/1.0.0
INFO - CarbonAuthenticationUtil 'admin@carbon.super [-1234]' logged in at [2019-10-29 11:42:31,030+0000]
INFO - CarbonAuthenticationUtil 'admin@carbon.super [-1234]' logged in at [2019-10-29 11:42:31,197+0000]
INFO - LogMediator STATUS = Message dispatched to the main sequence. Invalid URL., RESOURCE = /s0m3dAtabas3/bullshit
INFO - CarbonAuthenticationUtil 'admin@carbon.super [-1234]' logged in at [2019-10-29 11:48:30,649+0000]
INFO - CarbonAuthenticationUtil 'admin@carbon.super [-1234]' logged in at [2019-10-29 11:48:30,790+0000]
INFO - LogMediator STATUS = Message dispatched to the main sequence. Invalid URL., RESOURCE = /
INFO - InboundDBSyncRequestEvent Running DB sync task.
INFO - LogMediator STATUS = Message dispatched to the main sequence. Invalid URL., RESOURCE = /

我是不是错过了一些重要的配置步骤或wso2 API管理器不是独立组件我以为是需要另一个组件来实现我正在寻找的东西?

看来概念上有误区。

这里是典型的API管理解决方案的基本思想。

您有一个 Web 服务(REST、SOAP 等)需要作为托管 API 公开。现在,您可以使用 API 管理器作为您的服务的前端,并将其作为具有安全性、速率限制、托管生命周期等的托管 API 公开。

在你的情况下,你似乎没有这样的服务,而只有一个数据库table。因此,在使用 API 管理器为您的服务提供前端之前,您首先需要将您的 table 作为服务公开。为此,我建议您使用 WSO2 EI 7.0.0 的数据服务组件。有关如何执行此操作的信息,请参见 [1]。准备好服务后,您可以使用 API Manager 将其公开为托管 API.

[1] https://ei.docs.wso2.com/en/latest/micro-integrator/use-cases/tutorials/sending-a-simple-message-to-a-datasource/