2016-05-11 8 views
3

JerseyをREST APIとして使用するMavenスプリングアプリケーションがあります。コードを展開する環境ごとにプロパティファイルがあります。例えばurl変数を設定するためのプロパティファイルを使用してjerseyとswagger-uiをセットアップする方法は?

dev.propertiesは次のようになります。私はその後、各環境に闊歩を設定するには、春の豆を使用し

hostUrl=https://test.foo.net/ 
basePathUrl=/bar/restapi 

のように見えます

hostUrl=https://dev.foo.net/ 
basePathUrl=/bar/restapi 

そしてtest.properties:

<bean id="beanConfig" class="io.swagger.jaxrs.config.BeanConfig"> 
    <property name="title" value="Swagger App"/> 
    <property name="version" value="1.0.0" /> 
    <property name="schemes" value="http" /> 
    <property name="host" value="#{envSpecificProperties.hostUrl}" /> 
    <property name="basePath" value="#{envSpecificProperties.basePathUrl}"/> 
    <property name="resourcePackage" value="com.foo.bar.rest"/> 
    <property name="scan" value="true"/> 
</bean> 

<context:property-placeholder 
    properties-ref="envSpecificProperties" /> 
<util:properties id="envSpecificProperties" 
    location="WEB-INF/classes/file-#{xjpEnvironment.domain}.properties" /> 
<xjp:environment /> 

私の質問は、どのようにこれらの同じプロパティファイルを使用して0を設定できるかですindex.htmlswagger-uiが難しいこの

<script type="text/javascript"> 
$(function() {  
    var url = window.location.search.match(/url=([^&]+)/); 
    if (url && url.length > 1) { 
    url = decodeURIComponent(url[1]); 
    } else { 
    url = "http://localhost:8080/foo/bar/restapi/swagger.json"; 
    } 

、代わりのようないくつかの方法でプロパティファイルを動的に設定することができますようにコード化する必要がないように、この場合は私に知らせてください

<script type="text/javascript"> 
$(function() {  
    var url = window.location.search.match(/url=([^&]+)/); 
    if (url && url.length > 1) { 
    url = decodeURIComponent(url[1]); 
    } else { 
    url = "#{beanConfig.host}" + "#{beanConfig.basePath}" + "swagger.json"; 
    } 

maven swagger jerseyとspringで可能です。

ありがとうございます!

答えて

2

プロパティー・ファイルの値を使用して、ブートストラップ・サーブレットを追加し、そこにBean構成を設定できます。 URLを形成するために、JavaScript関数を使用し、動的にindex.htmlの中で値を設定するには https://github.com/swagger-api/swagger-core/wiki/Swagger-Core-Jersey-2.X-Project-Setup-1.5Setting the Api Version with Swagger UI

:詳細については

はを参照してください。このような何か:

url = "http://" + window.location.host + window.location.pathname + "api/swagger.json"; 
+1

これは 'URLに私を導いた= window.location.protocol + "//" + window.location.host + "/" + window.location.pathname.split(」/')[1] + "/" + "api/swagger.json"; これは動作するようです。ありがとう! – user2719805

関連する問題