Class OAS2Parser
- java.lang.Object
-
- org.wso2.carbon.apimgt.api.APIDefinition
-
- org.wso2.carbon.apimgt.impl.definitions.OAS2Parser
-
public class OAS2Parser extends org.wso2.carbon.apimgt.api.APIDefinition
Models API definition using OAS (swagger 2.0) parser
-
-
Constructor Summary
Constructors Constructor Description OAS2Parser()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description String
copyVendorExtensions(String existingSwaggerContent, String updatedSwaggerContent)
String
generateAPIDefinition(org.wso2.carbon.apimgt.api.model.SwaggerData swaggerData)
This method generates API definition to the given apiString
generateAPIDefinition(org.wso2.carbon.apimgt.api.model.SwaggerData swaggerData, String swagger)
This method generates API definition using the given api's URI templates and the swagger.Map<String,Object>
generateExample(String swaggerDef)
This method generates Sample/Mock payloads for Swagger (2.0) definitionsString
getOASDefinitionForPublisher(org.wso2.carbon.apimgt.api.model.API api, String oasDefinition)
Update OAS definition for API PublisherString
getOASDefinitionForStore(org.wso2.carbon.apimgt.api.model.APIProduct product, String oasDefinition, Map<String,String> hostsWithSchemes)
Update OAS definition for storeString
getOASDefinitionForStore(org.wso2.carbon.apimgt.api.model.API api, String oasDefinition, Map<String,String> hostsWithSchemes)
Update OAS definition for storeString
getOASDefinitionWithTierContentAwareProperty(String oasDefinition, List<String> contentAwareTiersList, String apiLevelTier)
String
getOASVersion(String oasDefinition)
Set<org.wso2.carbon.apimgt.api.model.Scope>
getScopes(String resourceConfigsJSON)
This method returns the oauth scopes according to the given swaggerString
getType()
Set<org.wso2.carbon.apimgt.api.model.URITemplate>
getURITemplates(String resourceConfigsJSON)
This method returns URI templates according to the given swagger fileString
getVendorFromExtension(String swaggerContent)
String
injectMgwThrottlingExtensionsToDefault(String swaggerContent)
This method returns swagger definition which replaced X-WSO2-throttling-tier extension comes from mgw with X-throttling-tier extensions in swagger file(Swagger version 2)String
populateCustomManagementInfo(String oasDefinition, org.wso2.carbon.apimgt.api.model.SwaggerData swaggerData)
Populate definition with wso2 APIM specific informationString
processDisableSecurityExtension(String swaggerContent)
This method will extractX-WSO2-disable-security extension provided in API level by mgw and inject that extension to all resources in OAS fileString
processOtherSchemeScopes(String swaggerContent)
This method will inject scopes of other schemes to the swagger definitionString
removeExamplesFromSwagger(String swaggerString)
Remove x-wso2-examples from all the paths from the swagger.String
removeResponsesObject(io.swagger.models.Swagger swagger, String swaggerString)
Remove responsesObject from the swagger string This is to address a bug in swagger parserorg.wso2.carbon.apimgt.api.model.API
setExtensionsToAPI(String apiDefinition, org.wso2.carbon.apimgt.api.model.API api)
This method returns api that is attached with api extensions related to micro-gworg.wso2.carbon.apimgt.api.APIDefinitionValidationResponse
validateAPIDefinition(String apiDefinition, boolean returnJsonContent)
This method validates the given OpenAPI definition by contentorg.wso2.carbon.apimgt.api.APIDefinitionValidationResponse
validateAPIDefinition(String apiDefinition, String url, boolean returnJsonContent)
-
-
-
Method Detail
-
generateExample
public Map<String,Object> generateExample(String swaggerDef) throws org.wso2.carbon.apimgt.api.APIManagementException
This method generates Sample/Mock payloads for Swagger (2.0) definitions- Specified by:
generateExample
in classorg.wso2.carbon.apimgt.api.APIDefinition
- Parameters:
swaggerDef
- Swagger Definition- Returns:
- Swagger Json
- Throws:
org.wso2.carbon.apimgt.api.APIManagementException
-
getURITemplates
public Set<org.wso2.carbon.apimgt.api.model.URITemplate> getURITemplates(String resourceConfigsJSON) throws org.wso2.carbon.apimgt.api.APIManagementException
This method returns URI templates according to the given swagger file- Specified by:
getURITemplates
in classorg.wso2.carbon.apimgt.api.APIDefinition
- Parameters:
resourceConfigsJSON
- swaggerJSON- Returns:
- URI Templates
- Throws:
org.wso2.carbon.apimgt.api.APIManagementException
-
getScopes
public Set<org.wso2.carbon.apimgt.api.model.Scope> getScopes(String resourceConfigsJSON) throws org.wso2.carbon.apimgt.api.APIManagementException
This method returns the oauth scopes according to the given swagger- Specified by:
getScopes
in classorg.wso2.carbon.apimgt.api.APIDefinition
- Parameters:
resourceConfigsJSON
- resource json- Returns:
- scope set
- Throws:
org.wso2.carbon.apimgt.api.APIManagementException
-
generateAPIDefinition
public String generateAPIDefinition(org.wso2.carbon.apimgt.api.model.SwaggerData swaggerData) throws org.wso2.carbon.apimgt.api.APIManagementException
This method generates API definition to the given api- Specified by:
generateAPIDefinition
in classorg.wso2.carbon.apimgt.api.APIDefinition
- Parameters:
swaggerData
- api- Returns:
- API definition in string format
- Throws:
org.wso2.carbon.apimgt.api.APIManagementException
-
generateAPIDefinition
public String generateAPIDefinition(org.wso2.carbon.apimgt.api.model.SwaggerData swaggerData, String swagger) throws org.wso2.carbon.apimgt.api.APIManagementException
This method generates API definition using the given api's URI templates and the swagger. It will alter the provided swagger definition based on the URI templates. For example: if there is a new URI template which is not included in the swagger, it will be added to the swagger as a basic resource. Any additional resources inside the swagger will be removed from the swagger. Changes to scopes, throtting policies, on the resource will be updated on the swagger- Specified by:
generateAPIDefinition
in classorg.wso2.carbon.apimgt.api.APIDefinition
- Parameters:
swaggerData
- apiswagger
- swagger definition- Returns:
- API definition in string format
- Throws:
org.wso2.carbon.apimgt.api.APIManagementException
- if error occurred when generating API Definition
-
validateAPIDefinition
public org.wso2.carbon.apimgt.api.APIDefinitionValidationResponse validateAPIDefinition(String apiDefinition, boolean returnJsonContent) throws org.wso2.carbon.apimgt.api.APIManagementException
This method validates the given OpenAPI definition by content- Specified by:
validateAPIDefinition
in classorg.wso2.carbon.apimgt.api.APIDefinition
- Parameters:
apiDefinition
- OpenAPI Definition contentreturnJsonContent
- whether to return the converted json form of the OpenAPI definition- Returns:
- APIDefinitionValidationResponse object with validation information
- Throws:
org.wso2.carbon.apimgt.api.APIManagementException
-
validateAPIDefinition
public org.wso2.carbon.apimgt.api.APIDefinitionValidationResponse validateAPIDefinition(String apiDefinition, String url, boolean returnJsonContent) throws org.wso2.carbon.apimgt.api.APIManagementException
- Specified by:
validateAPIDefinition
in classorg.wso2.carbon.apimgt.api.APIDefinition
- Throws:
org.wso2.carbon.apimgt.api.APIManagementException
-
populateCustomManagementInfo
public String populateCustomManagementInfo(String oasDefinition, org.wso2.carbon.apimgt.api.model.SwaggerData swaggerData) throws org.wso2.carbon.apimgt.api.APIManagementException
Populate definition with wso2 APIM specific information- Specified by:
populateCustomManagementInfo
in classorg.wso2.carbon.apimgt.api.APIDefinition
- Parameters:
oasDefinition
- OAS definitionswaggerData
- API- Returns:
- Generated OAS definition
- Throws:
org.wso2.carbon.apimgt.api.APIManagementException
- If an error occurred
-
removeExamplesFromSwagger
public String removeExamplesFromSwagger(String swaggerString) throws org.wso2.carbon.apimgt.api.APIManagementException
Remove x-wso2-examples from all the paths from the swagger.- Parameters:
swaggerString
- Swagger as String- Throws:
org.wso2.carbon.apimgt.api.APIManagementException
-
getOASDefinitionForStore
public String getOASDefinitionForStore(org.wso2.carbon.apimgt.api.model.API api, String oasDefinition, Map<String,String> hostsWithSchemes) throws org.wso2.carbon.apimgt.api.APIManagementException
Update OAS definition for store- Specified by:
getOASDefinitionForStore
in classorg.wso2.carbon.apimgt.api.APIDefinition
- Parameters:
api
- APIoasDefinition
- OAS definitionhostsWithSchemes
- host addresses with protocol mapping- Returns:
- OAS definition
- Throws:
org.wso2.carbon.apimgt.api.APIManagementException
- throws if an error occurred
-
getOASDefinitionForStore
public String getOASDefinitionForStore(org.wso2.carbon.apimgt.api.model.APIProduct product, String oasDefinition, Map<String,String> hostsWithSchemes) throws org.wso2.carbon.apimgt.api.APIManagementException
Update OAS definition for store- Specified by:
getOASDefinitionForStore
in classorg.wso2.carbon.apimgt.api.APIDefinition
- Parameters:
product
- APIProductoasDefinition
- OAS definitionhostsWithSchemes
- host addresses with protocol mapping- Returns:
- OAS definition
- Throws:
org.wso2.carbon.apimgt.api.APIManagementException
- throws if an error occurred
-
getOASDefinitionForPublisher
public String getOASDefinitionForPublisher(org.wso2.carbon.apimgt.api.model.API api, String oasDefinition) throws org.wso2.carbon.apimgt.api.APIManagementException
Update OAS definition for API Publisher- Specified by:
getOASDefinitionForPublisher
in classorg.wso2.carbon.apimgt.api.APIDefinition
- Parameters:
api
- APIoasDefinition
-- Returns:
- OAS definition
- Throws:
org.wso2.carbon.apimgt.api.APIManagementException
- throws if an error occurred
-
getOASVersion
public String getOASVersion(String oasDefinition)
- Specified by:
getOASVersion
in classorg.wso2.carbon.apimgt.api.APIDefinition
-
removeResponsesObject
public String removeResponsesObject(io.swagger.models.Swagger swagger, String swaggerString) throws com.fasterxml.jackson.core.JsonProcessingException
Remove responsesObject from the swagger string This is to address a bug in swagger parser- Parameters:
swagger
- Swagger modelswaggerString
- Swagger definition as string- Returns:
- Modified swagger string
- Throws:
com.fasterxml.jackson.core.JsonProcessingException
-
getOASDefinitionWithTierContentAwareProperty
public String getOASDefinitionWithTierContentAwareProperty(String oasDefinition, List<String> contentAwareTiersList, String apiLevelTier) throws org.wso2.carbon.apimgt.api.APIManagementException
- Specified by:
getOASDefinitionWithTierContentAwareProperty
in classorg.wso2.carbon.apimgt.api.APIDefinition
- Throws:
org.wso2.carbon.apimgt.api.APIManagementException
-
processOtherSchemeScopes
public String processOtherSchemeScopes(String swaggerContent) throws org.wso2.carbon.apimgt.api.APIManagementException
This method will inject scopes of other schemes to the swagger definition- Specified by:
processOtherSchemeScopes
in classorg.wso2.carbon.apimgt.api.APIDefinition
- Parameters:
swaggerContent
- resource json- Returns:
- String
- Throws:
org.wso2.carbon.apimgt.api.APIManagementException
-
injectMgwThrottlingExtensionsToDefault
public String injectMgwThrottlingExtensionsToDefault(String swaggerContent) throws org.wso2.carbon.apimgt.api.APIManagementException
This method returns swagger definition which replaced X-WSO2-throttling-tier extension comes from mgw with X-throttling-tier extensions in swagger file(Swagger version 2)- Specified by:
injectMgwThrottlingExtensionsToDefault
in classorg.wso2.carbon.apimgt.api.APIDefinition
- Parameters:
swaggerContent
- String- Returns:
- String
- Throws:
org.wso2.carbon.apimgt.api.APIManagementException
-
copyVendorExtensions
public String copyVendorExtensions(String existingSwaggerContent, String updatedSwaggerContent) throws org.wso2.carbon.apimgt.api.APIManagementException
- Specified by:
copyVendorExtensions
in classorg.wso2.carbon.apimgt.api.APIDefinition
- Throws:
org.wso2.carbon.apimgt.api.APIManagementException
-
setExtensionsToAPI
public org.wso2.carbon.apimgt.api.model.API setExtensionsToAPI(String apiDefinition, org.wso2.carbon.apimgt.api.model.API api) throws org.wso2.carbon.apimgt.api.APIManagementException
This method returns api that is attached with api extensions related to micro-gw- Specified by:
setExtensionsToAPI
in classorg.wso2.carbon.apimgt.api.APIDefinition
- Parameters:
apiDefinition
- Stringapi
- API- Returns:
- API
- Throws:
org.wso2.carbon.apimgt.api.APIManagementException
-
processDisableSecurityExtension
public String processDisableSecurityExtension(String swaggerContent) throws org.wso2.carbon.apimgt.api.APIManagementException
This method will extractX-WSO2-disable-security extension provided in API level by mgw and inject that extension to all resources in OAS file- Specified by:
processDisableSecurityExtension
in classorg.wso2.carbon.apimgt.api.APIDefinition
- Parameters:
swaggerContent
- String- Returns:
- String
- Throws:
org.wso2.carbon.apimgt.api.APIManagementException
-
getVendorFromExtension
public String getVendorFromExtension(String swaggerContent)
- Specified by:
getVendorFromExtension
in classorg.wso2.carbon.apimgt.api.APIDefinition
-
getType
public String getType()
- Specified by:
getType
in classorg.wso2.carbon.apimgt.api.APIDefinition
-
-