Insomnia Core is a Desktop API client for Rest and GraphQL. Make requests, inspect responses.
Note: Insomnia Designer and Insomnia Core have been merged. Following the Insomnia 2021.1 release there will no longer be an Insomnia Core or Insomnia Designer, only Insomnia.
Available at:
https://insomnia.rest/products/core/
Using Insomnia:
https://support.insomnia.rest/category/19-using-insomnia?sort=popularity
Ref. > https://support.insomnia.rest/article/52-importing-and-exporting-data
Application > Preferences > Tab 'Data' > Export Data > All Workspaces
Ref. > https://support.insomnia.rest/article/18-environment-variables
Sample:
{
"enpoint_prefix": "https://myapp-pre.cou.edu/myapp_back",
"oautht": "yGBpaFAP3FJg90gFjn9Dt4sCPnzUH9aDVQhqAeJuG6A.J1-1EXIkPISE-vdKjCPaItqwF0GqT_IrquIx5iTEPci",
"merida": {
"academicRecordCode": 798353
}
}
Referencing environment variables:
Summon the autocomplete dropdown by pressing Control+Space
Allow the autocomplete to show automatically as you type
Ref. > https://support.insomnia.rest/article/40-template-tags
Template tags are closely related to Environment Variables. They can be used in the same places and they behave in a similar way. The main difference is that template tags are more like operations, not variables. Tags can do things like transform strings, random numbers, UUIDs, timestamps, and so on.
Available as of 2020-02-02:
Base64
Hash
File
Timestamp
UUID
Prompt
Request
Response
JSONPath
Cookie
Reference:
Invoke the OAuth Instrospection Endpoint [https://is.docs.wso2.com/en/latest/learn/invoke-the-oauth-introspection-endpoint/]
cURL to validate access tokens obtained with client credentials from the endpoint /oauth2/token:
curl --request POST \
--url https://auth.cou.int/oauth2/introspect \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'accept: application/json' \
-H 'Authorization: Basic <REPLACE_BY_BASE64(hydra_clientid:hydra_secret)>' \
--data 'scope=<REPLACE_BY_SCOPE>' \
--data 'token=<REPLACE_BY_ACCESS_TOKEN_TO_BE_VALIDATED>'
Note: The 'grant_type' and 'scope' are optional
Sample failure response:
{"active":false}
Sample success response:
{
"active": true,
"scope": "myapp.whatever",
"client_id": "<the client id>",
"sub": "<the client id>",
"exp": 1660073569,
"iat": 1660062769,
"iss": "https://auth.cou.int"
}
The following image shows the configuration for validating obtaining the OAuth access token and sending in as 'Bearer' in the Authorization header:
After the user returns to the client via the redirect URL, the application will get the authorization code from the URL and use it to request an access token.
Detailed example at:
https://fireflysemantics.medium.com/oauth-authorization-code-grant-flow-demonstrated-with-curl-71543ba6c3f7
Getting an access token using cURL providing client credentials, eg:
curl --request POST \
--url https://auth.cou.int/oauth2/token \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'accept: application/json' \
--data grant_type=client_credentials \
--data client_id=<<<the client id>>> \
--data 'client_secret=<<<the client secret>>>' \
--data scope=myapp.myscope
Sample response:
{
"access_token": "sw-TW-kDTZg_jJ-7CjcvrCwBSipYNBZCgkRW6o.ExhtayRhyNV8T5fAm64P4fo3",
"expires_in": 10799,
"scope": "myapp.myscope",
"token_type": "bearer"
}
The following images show the Insomnia configuration for validating an OAuth access token:
Ref. > https://support.insomnia.rest/article/43-chaining-requests
Sample (reuse JWT token from the response of another operation):
Header value:
Bearer [Response => Body Attribute]
where 'Filder (JSONPath or XPath) extracts the value of the JSON 'jwt' key:
$.jwt
Paste the cURL at the address bar of the request, Insomnia will automatically build the request with their Query, Header, etc.
Right click the button [Send] at the address bar of the request
Click 'Generate Client Code'
Choose 'Shell' and 'cURL'
Cick button 'Copy to Clipboard'
When creating a request, choose POST > GraphQL Query
Sample endpoint: http://localhost:8080/graphql
Sample body:
query ListBooks {
myBooks: getAllBooks {
id
author
title
}
}