我在域模式下的 teiid 主从设置上部署了多个 VDB。例如,AirFlights-vdb.xml、Customer-vdb.xml ...等部署了几个程序,这些程序在每个 VDB 中作为 REST API 公开。我使用 IP:8080/AirFlights_1/api 之类的 URL 来访问 swagger 文档特定的 VDB。当部署了多个 VDB 时,swagger 文档会损坏。例如,当我执行 IP:8080/AirFlights_1/api 时,它会列出与 Customer-vdb.xml 和其他已部署 VDB 相关的 API 资源。您能帮我解决生成的 swagger 文件的这种混乱性质吗?
我使用 http://teiid.org/rest}auto-generate" value="true"/> 属性来生成 War 文件。
示例 vdb 看起来像这样
?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<vdb name="sample" version="1">
<property name="UseConnectorMetadata" value="true" />
<property name="{http://teiid.org/rest}auto-generate" value="true"/>
<model name="PM1">
<source name="text-connector" translator-name="loopback" />
<metadata type="DDL"><![CDATA[
CREATE FOREIGN TABLE G1 (e1 string, e2 integer);
CREATE FOREIGN TABLE G2 (e1 string, e2 integer);
]]> </metadata>
</model>
<model name="View" type ="VIRTUAL">
<metadata type="DDL"><![CDATA[
SET NAMESPACE 'http://teiid.org/rest' AS REST;
CREATE VIRTUAL PROCEDURE g1Table(IN p1 integer) RETURNS TABLE (xml_out xml) OPTIONS (UPDATECOUNT 0, "REST:METHOD" 'GET', "REST:URI" 'g1/{p1}')
AS
BEGIN
SELECT XMLELEMENT(NAME "rows", XMLATTRIBUTES (g1Table.p1 as p1), XMLAGG(XMLELEMENT(NAME "row", XMLFOREST(e1, e2)))) AS xml_out FROM PM1.G1;
END
]]> </metadata>
</model>
</vdb>