Class OAS2Parser


  • public class OAS2Parser
    extends org.wso2.carbon.apimgt.api.APIDefinition
    Models API definition using OAS (swagger 2.0) parser
    • Constructor Detail

      • OAS2Parser

        public OAS2Parser()
    • 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 class org.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 class org.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 class org.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 class org.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 class org.wso2.carbon.apimgt.api.APIDefinition
        Parameters:
        swaggerData - api
        swagger - 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 class org.wso2.carbon.apimgt.api.APIDefinition
        Parameters:
        apiDefinition - OpenAPI Definition content
        returnJsonContent - 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 class org.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 class org.wso2.carbon.apimgt.api.APIDefinition
        Parameters:
        oasDefinition - OAS definition
        swaggerData - 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 class org.wso2.carbon.apimgt.api.APIDefinition
        Parameters:
        api - API
        oasDefinition - OAS definition
        hostsWithSchemes - 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 class org.wso2.carbon.apimgt.api.APIDefinition
        Parameters:
        product - APIProduct
        oasDefinition - OAS definition
        hostsWithSchemes - 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 class org.wso2.carbon.apimgt.api.APIDefinition
        Parameters:
        api - API
        oasDefinition -
        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 class org.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 model
        swaggerString - 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 class org.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 class org.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 class org.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 class org.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 class org.wso2.carbon.apimgt.api.APIDefinition
        Parameters:
        apiDefinition - String
        api - 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 class org.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 class org.wso2.carbon.apimgt.api.APIDefinition
      • getType

        public String getType()
        Specified by:
        getType in class org.wso2.carbon.apimgt.api.APIDefinition