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

问题描述 投票:1回答:1

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

  • 我不正确地理解wso2组件的角色(对我来说是新技术和新主题)
  • 或者我配置管理器的方式有错误。

系统设置

我使用了此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:

  • admin
  • 发布者
  • 商店

图形API创建

我首先遵循了WorldBank教程,这看起来很清晰(尽管我不太确定数据来自何处)。然后,我试图适应它。

步骤1:设计

我将数据库名称用作上下文(s0m3dAtabas3)v.1.0.0。由于该表称为something,因此我最终得到的网址格式为/s0m3dAtabas3/1.0.0/something

步骤2:实施

这就是开始令人困惑的地方。不管我在Endpoint中使用的资源路径(端点类型为REST),我都会得到404,并且日志不是很有帮助

  • http://192.168.8.111:8280-> 404
  • http://192.168.8.111:8280/something-> 404
  • [http://192.168.8.111:9443/tried_several->无效-连接到后端时出错
  • [http://192.168.8.111:8243/tried_several->无效-连接到后端时出错
INFO - InboundDBSyncRequestEvent Running DB sync task.
INFO - LogMediator STATUS = Message dispatched to the main sequence. Invalid URL., RESOURCE = /s0m3dAtabas3/1.0.0
INFO - CarbonAuthenticationUtil '[email protected] [-1234]' logged in at [2019-10-29 11:42:31,030+0000]
INFO - CarbonAuthenticationUtil '[email protected] [-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 '[email protected] [-1234]' logged in at [2019-10-29 11:48:30,649+0000]
INFO - CarbonAuthenticationUtil '[email protected] [-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 Manager不是我认为的独立组件,并且需要另一个组件来实现我想要的?

postgresql rest wso2 wso2-am
1个回答
0
投票

似乎在概念上存在误解。

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

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

在您的情况下,您似乎没有这样的服务,但是只有一个数据库表。因此,在使用API​​ Manager进行服务前,您首先需要将表公开为服务。为此,建议您使用WSO2 EI 7.0.0的数据服务组件。参见[1]。准备好服务后,就可以使用API​​管理器将其公开为托管API。

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

© www.soinside.com 2019 - 2024. All rights reserved.