How to avoid swagger console issue in API Manager 1.9.1 due to "Can't read from server. It may not have the appropriate access-control-origin settings." error

Sometimes when you use API Manager swagger console in store side you may seen this error "Can't read from server. It may not have the appropriate access-control-origin settings.".



There is one other simple workaround for this issue and you can use same for your deployment. If we used double quotes for labels in swagger document then it can cause to this type of issue.

If you can survive with provided workaround for 1.9, then when you upgrade to next version(1.10) issue will not be there as mentioned early.

So here i have attached one sample with error and one with fix.

problematic swagger definition

{
  "paths": {
    "/*": {
      "put": {
        "x-auth-type": "Application & Application User",
        "x-throttling-tier": "Unlimited",
        "parameters": [
          {
            "schema": {
              "type": "object"
            },
            "description": "Request Body",
            "name": "Payload",
            "required": false,
            "in": "body"
          }
        ],
        "responses": {
          "200": {}
        }
      },
      "post": {
        "x-auth-type": "Application & Application User",
        "x-throttling-tier": "Unlimited",
        "parameters": [
          {
            "schema": {
              "type": "object"
            },
            "description": "Request Body",
            "name": "Payload",
            "required": false,
            "in": "body"
          }
        ],
        "responses": {
          "200": {}
        }
      },
      "get": {
        "x-auth-type": "Application & Application User",
        "x-throttling-tier": "Unlimited",
        "responses": {
          "200": {}
        }
      },
      "delete": {
        "x-auth-type": "Application & Application User",
        "x-throttling-tier": "Unlimited",
        "responses": {
          "200": {}
        }
      },
      "head": {
        "x-auth-type": "Application & Application User",
        "x-throttling-tier": "Unlimited",
        "responses": {
          "200": {}
        }
      }
    }
  },
  "definitions": {
    "Structure test \"test\" ssssss": {
      "properties": {
        "horaireCotation": {
          "description": "Horaire de cotation",
          "type": "string"
        },
        "statut": {
          "type": "string"
        },
        "distanceBarriere": {
          "format": "double",
          "type": "number"
        },
        "premium": {
          "format": "double",
          "type": "number"
        },
        "delta": {
          "format": "double",
          "type": "number"
        },
        "pointMort": {
          "format": "double",
          "type": "number"
        },
        "elasticite": {
          "format": "double",
          "type": "number"
        }
      }
    }
  },
  "swagger": "2.0",
  "info": {
    "title": "hello",
    "version": "1.0"
  }
}

Corrected Swagger definition

{
    'paths': {
        '/*': {
            'put': {
                'x-auth-type': 'Application & Application User',
                'x-throttling-tier': 'Unlimited',
                'parameters': [
                    {
                        'schema': {
                            'type': 'object'
                        },
                        'description': 'Request Body',
                        'name': 'Payload',
                        'required': false,
                        'in': 'body'
                    }
                ],
                'responses': {
                    '200': {}
                }
            },
            'post': {
                'x-auth-type': 'Application & Application User',
                'x-throttling-tier': 'Unlimited',
                'parameters': [
                    {
                        'schema': {
                            'type': 'object'
                        },
                        'description': 'Request Body',
                        'name': 'Payload',
                        'required': false,
                        'in': 'body'
                    }
                ],
                'responses': {
                    '200': {}
                }
            },
            'get': {
                'x-auth-type': 'Application & Application User',
                'x-throttling-tier': 'Unlimited',
                'responses': {
                    '200': {}
                }
            },
            'delete': {
                'x-auth-type': 'Application & Application User',
                'x-throttling-tier': 'Unlimited',
                'responses': {
                    '200': {}
                }
            },
            'head': {
                'x-auth-type': 'Application & Application User',
                'x-throttling-tier': 'Unlimited',
                'responses': {
                    '200': {}
                }
            }
        }
    },
    'definitions': {
        'Structure test \"test\" ssssss': {
            'properties': {
                'horaireCotation': {
                    'description': 'Horaire de cotation',
                    'type': 'string'
                },
                'statut': {
                    'type': 'string'
                },
                'distanceBarriere': {
                    'format': 'double',
                    'type': 'number'
                },
                'premium': {
                    'format': 'double',
                    'type': 'number'
                },
                'delta': {
                    'format': 'double',
                    'type': 'number'
                },
                'pointMort': {
                    'format': 'double',
                    'type': 'number'
                },
                'elasticite': {
                    'format': 'double',
                    'type': 'number'
                }
            }
        }
    },
    'swagger': '2.0',
    'info': {
        'title': 'hello',
        'version': '1.0'
    }
}


Also if you like to fix this issue by editing jagger file that is also possible. Please find the instructions below.

Edit store/site/blocks/api-doc/ajax/get.jag file and add following instead of just print(jsonObj)
print(JSON.stringify(jsonObj));

No comments:

Post a Comment

Empowering the Future of API Management: Unveiling the Journey of WSO2 API Platform for Kubernetes (APK) Project and the Anticipated Alpha Release

  Introduction In the ever-evolving realm of API management, our journey embarked on the APK project eight months ago, and now, with great a...