This plugin is not compatible with Konnect
Contact 3rd party for support: This plugin is developed, tested, and maintained by Optum
This plugin enables mocking virtual API request and response pairs through Kong Gateway.
Explanation
kong-service-virtualization
schema virtual_tests
arguments:
[
{
"name": "TestCase1",
"requestHttpMethod": "POST",
"requestHash": "0296217561490155228da9c17fc555cf9db82d159732f3206638c25f04a285c4",
"responseHttpStatus": "200",
"responseContentType": "application/json",
"response": "eyJtZXNzYWdlIjogIkEgQmlnIFN1Y2Nlc3MhIn0="
},
{
"name": "TestCase2",
"requestHttpMethod": "GET",
"requestHash": "e2c319e4ef41706e2c0c1b266c62cad607a014c59597ba662bef6d10a0b64a32",
"responseHttpStatus": "200",
"responseContentType": "application/json",
"response": "eyJtZXNzYWdlIjogIkFub3RoZXIgU3VjY2VzcyEifQ=="
}
]
Where TestCase1
and TestCase2
are the names of the virtual test cases and must be passed in as a header value:
X-VirtualRequest: TestCase1
or
X-VirtualRequest: TestCase2
The requestHash
arg is a Sha256(HTTP Request as query parameters or HTTP Body).
The response
arg is a Base64 encoded format of the response HTTP Body.
So the above plugin equates to these pseudo requests:
https://gateway.company.com/virtualtest
POST:
{
"virtual": "test"
}
Response : {"message": "A Big Success!"} as base64 encoded in plugin
GET:
hello=world&service=virtualized
Response : {"message": "Another Success!"} as base4 encoded in plugin
In the event you do not successfully match on request you will receive a Sha256 comparison for you own personal debugging:
Status Code: 404 Not Found
Content-Length: 207
Content-Type: application/json; charset=utf-8
{"message":"No virtual request match found, your request yielded: 46c4b4caf0cc3a5a589cbc4e0f3cd0492985d5b889f19ebc11e5a5bd6454d20f expected 0296217561490155228da9c17fc555cf9db82d159732f3206638c25f04a285c4"}
If the test case specified in the header does not match anything found stored within the plugin your error would be like so:
Passing X-VirtualRequest: TestCase3
in header yields:
Status Code: 404 Not Found
Content-Length: 49
Content-Type: application/json; charset=utf-8
{"message":"No matching virtual request found!"}
Installation
Recommended:
$ luarocks install kong-service-virtualization
Optional:
$ git clone https://github.com/Optum/kong-service-virtualization
$ cd /path/to/kong/plugins/kong-service-virtualization
$ luarocks make *.rockspec
Maintainers
Feel free to open issues, or refer to our Contribution Guidelines if you have any questions.