Sto usando swagger-ui per fornire una buona documentazione per le API REST ai nostri clienti. Internamente abbiamo due diversi ambienti in cui jenkin costruisce il progetto. E.g. swagger.json è accessibile sia su ambiente come: http://www.myhost.com/xyz/rest/swagger.json https://www.myhost2.com/rest/swagger.json
Gestione di più basepath in swagger
La documentazione è disponibile come: http://www.myhost.com/xyz/dist/index.html https://www.myhost2.com/dist/index.html
spavalderia api BasePath in web.xml è:
<init-param>
<param-name>swagger.api.basepath</param-name>
<param-value>/rest</param-value>
</init-param>
PROBLEMA: sto cercando di utilizzare la funzione "Provalo" nella pagina di documentazione. La relativa richiesta URL per entrambi i padroni di casa sono i seguenti: http://www.myhost.com/rest/getAUser https://www.myhost2.com/rest/getAUser
Si lavora per host2 quanto sta colpendo l'URL corretto. Tuttavia dovrebbe colpire http://www.myhost.com/xyz/rest/getAUser
per host1 ma sta colpendo l'url http://www.myhost.com/rest/getAUser
.
Esiste un modo per specificare più percorsi per diversi URL.
Il mio swagger-ui html è simile a questo.
$(function() {
var href = window.location.href;
var url = href.substring(0, href.lastIndexOf("/dist"));
console.log(url);
// Pre load translate...
if(window.SwaggerTranslator) {
window.SwaggerTranslator.translate();
}
window.swaggerUi = new SwaggerUi({
url: url + "/rest/swagger.json",
dom_id: "swagger-ui-container",
......
......
}
Completamente irrilevante alla domanda, ma '/ getAUser' non è, ovviamente, design REST corretto. GET è l'operazione e il tuo url dovrebbe consistere di nomi. – Jasper