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" ]
}
}