Swagger(現更名為OpenAPI Specification)在Linux環境下的最佳實踐包括以下幾個方面:
sudo apt update
sudo apt install openjdk-11-jdk
sudo apt install maven
git clone https://github.com/swagger-api/swagger-ui.git
cd swagger-ui
mvn clean install
sudo cp -r target/swagger-ui-dist/* /var/www/html/
sudo a2ensite default.conf
sudo systemctl restart apache2
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.baksudo nano /etc/nginx/sites-available/default
sudo nano /etc/nginx/sites-available/default
```修改`server`塊中的`root`和`index`指令,然后重啟Nginx:
```bash
sudo systemctl restart nginx
/v1
等路徑標識版本。openapi-generator-cli generate -i api-spec.yaml -g spring -o ./generated-code
const mockApi = require('swagger-mock-api');
mockApi({swaggerFile: './api-spec.yaml', port: 3000});
import requests
def test_get_product():
response = requests.get("https://api.example.com/v1/products/123")
assert response.status_code == 200
assert response.json()["name"] == "Laptop"
@RestController
@RequestMapping("/api-docs")
public class ApiDocController {
@GetMapping
public String getApiDocs() {
return openApiDefinition;
}
}
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build();
}
}
雖然Swagger本身不直接提供權限管理功能,但可以通過集成OAuth 2.0、實現角色和權限、使用ACL或利用第三方工具來實現權限管理。
通過遵循上述最佳實踐,可以在Linux環境下高效地使用Swagger進行API文檔的生成、管理和測試。