VirtualizedAPI

Summary

Represents a virtualized, frontend API.

Description

A VirtualizedAPI is the frontend exposure of a backend APIDefinition. The documentation for the original API can be overridden using descriptionType. When the documentation is overridden, the API Catalog will reflect the changes, allowing the API's documentation to be maintained even after the API is published. When the descriptionType is original, the documentation is obtained from the API from the original API definition. When descriptionType is manual, the text is obtained from descriptionManual and can use markdown syntax. When descriptionType is url, the descriptionUrl should point to an externally resolvable resource.

Fields

Field Name Type Since Version Description
id String Unique ID of the virtualized API.
organizationId String The organization that created the virtualized API.
apiId String The identifier of the API that was virtualized. This is the only attribute that is required to create a virtualized API.
name String The name of this virtualized API.
version String The API version.
vhost String The virtual host of this virtualized API.
path String The path that services this virtualized API.
descriptionType String Type of descripton to use. One of: manual, markdown, url, or original (default).
descriptionManual String Markdown string to use as the description of the API.
descriptionMarkdown String Markdown file to use as the description of the API within the API Catalog.
descriptionUrl String External URL to use as the description of the API.
summary String A short summary description of the API.
retired Boolean Immediately retires the virtualized API.
expired Boolean Immediately expires the virtualized API.
image String URI of the image to be used for this virtualized API. To update the image, please refer to the API.
retirementDate Long Date to retire the virtualized API. If retired is true, this is the date on which it was retired.
deprecated Boolean Immediately deprecates the virtualized API. If deprecated, then retiredOn is optionally used to retire the virtualized API on the specified date.
state String The state of the virtualized API. One of: unpublished, pending, or published.
createdOn Long Epoch/Unix time stamp when the virtualized API was created.
createdBy String The unique identifier for user that created the virtualized API.
corsProfiles [CORSProfile] The suite of CORS Profiles for this virtualized API.
securityProfiles [SecurityProfile] The suite of Security Profiles for this virtualized API.
authenticationProfiles [AuthenticationProfile] The suite of Security Profiles for this virtualized API.
inboundProfiles {String, InboundProfiles} The inbound profiles that apply to the virtualized API. There must always a _default profile.
outboundProfiles {String, OutboundProfiles} The outbound profiles that apply to the virtualized API. There must always a _default profile.
serviceProfiles {String, ServiceProfiles} The inbound profiles that apply to the virtualized API. There must always a _default profile.
caCerts [CACert] The outbound profiles that apply to the virtualized API. There must always a _default profile.
tags Map The list of tags associated with this API. Each tag can have multiple values

Example JSON

{
  "id" : "bacb827e-e555-43fa-b006-50c7404aa990",
  "organizationId" : "b6889722b7-222-b06f-2eaaf1548898",
  "apiId" : "9064396e-7743-4644-a0b7-d30b421e2b30",
  "name" : "My virtualized API",
  "version" : "1.0",
  "vhost" : "host.company.com",
  "path" : "/flikr",
  "descriptionType" : "manual",
  "descriptionManual" : "My API\n====\n\nThis is my API.",
  "descriptionMarkdown" : "${environment.VINSTDIR}/../markdown/flickr/flickr.md",
  "descriptionUrl" : "http://doc.api.org/myapi/mymethod#anchor",
  "summary" : "My API\n====\n\nThis is my API.",
  "retired" : false,
  "expired" : false,
  "image" : "resources/photo.jpg",
  "retirementDate" : 1364287486876,
  "deprecated" : true,
  "state" : "unpublished",
  "createdOn" : 1364287486876,
  "createdBy" : "de077cd8-83b7-46d1-b06f-2eaaf1548898",
  "corsProfiles" : [ {
    "name" : "Default Security Profile",
    "isDefault" : false,
    "origins" : [ "http://api.google.com", "http://api.flickr.com" ],
    "allowedHeaders" : [ "X-Request-Value", "X-Hello-World" ],
    "exposedHeaders" : [ "X-Trace", "X-CorrelationID" ],
    "supportCredentials" : false,
    "maxAgeSeconds" : 84600
  } ],
  "securityProfiles" : [ {
    "name" : "Default Security Profile",
    "isDefault" : false,
    "devices" : [ {
      "name" : "My Pass-through Device",
      "type" : "apiKey",
      "order" : 1,
      "properties" : {
        "apiKeyFieldName" : "APIKey",
        "takeFrom" : "HEADER"
      }
    } ]
  } ],
  "authenticationProfiles" : [ {
    "name" : "Default Security Profile",
    "isDefault" : false,
    "parameters" : {
      "apiKey" : "e7812c14-b67a-4eef-84a1-e18c0d8436ba",
      "apiKeyField" : "KeyId",
      "httpLocation" : "query"
    },
    "type" : "apikey"
  } ],
  "inboundProfiles" : {
    "_default" : {
      "securityProfile" : "Default Inbound Security",
      "corsProfile" : "Default CORS profile",
      "monitorAPI" : true,
      "monitorSubject" : "authentication.subject.id"
    }
  },
  "outboundProfiles" : {
    "_default" : {
      "authenticationProfile" : "My Backend",
      "routeType" : "proxy",
      "requestPolicy" : null,
      "responsePolicy" : null,
      "routePolicy" : null,
      "apiId" : "9064396e-7743-4644-a0b7-d30b421e2b30",
      "apiMethodId" : "7fd18d9a-1258-4031-a168-d7f6bf612dc1",
      "parameters" : [ {
        "name" : "id",
        "paramType" : "query",
        "type" : "string",
        "value" : "${params.path.id}",
        "required" : true,
        "exclude" : false,
        "additional" : false
      } ]
    }
  },
  "serviceProfiles" : {
    "_default" : {
      "apiId" : "96f745ae-a41a-41a9-aad8-8bf24b5cc27e",
      "basePath" : "http://backend.io"
    }
  },
  "caCerts" : [ {
    "certBlob" : "YmxvYg==",
    "name" : "CN=Equifax Secure eBusiness CA-1, O=Equifax Secure Inc., C=US",
    "alias" : "CN=Equifax Secure eBusiness CA-1, O=Equifax Secure Inc., C=US",
    "subject" : "CN=Equifax Secure eBusiness CA-1, O=Equifax Secure Inc., C=US",
    "issuer" : "CN=Equifax Secure eBusiness CA-1, O=Equifax Secure Inc., C=US",
    "version" : 3,
    "notValidBefore" : 1364287486876,
    "notValidAfter" : 1364287486876,
    "signatureAlgorithm" : "RSA (2048 bits)",
    "sha1Fingerprint" : "BC:5C:0D:3E:47:58:DF:E8:42:A4:D2:34:C5:D4:97:14:DA:54:F4:CD",
    "md5Fingerprint" : "89:DD:C1:6C:C0:6E:1D:B1:75:0C:48:E5:E6:AC:76:B0",
    "expired" : true,
    "notYetValid" : false,
    "inbound" : false,
    "outbound" : true
  } ],
  "tags" : {
    "Type" : [ "REST" ],
    "Category" : [ "Social Network, Photos" ]
  }
}