- 09 Nov 2022
-
DarkLight
-
PDF
URL Paths
- Updated on 09 Nov 2022
-
DarkLight
-
PDF
Adapters need to send the request to the correct path for the other system to receive and handle the request properly. The path of a call is the part that comes after the connect information and before the ?. For example: URL - http://myservicenow.com/api/rest/v1/changes?name=CHG, the path is /api/rest/v1/changes. If the path the other system expects is /api/rest/v1/changes and we are sending a path of /api/v2/change, the call will result in an error (usually a 404), or it will not be handled properly.
Having the correct path for installation requires verifying the IAP Service Instance Configuration for the adapter. In particular these properties:
- base_path
- version
To verify you have the correct path:
- Make sure base_path is correct. Using base path is helpful to minimize the impact of any changes but the wrong base path will result in all calls failing.
- Make sure base_path is only the common part of the path for all calls. So in the example above the base_path should be /api/rest if that is the first part of most or all calls to the system.
- The base_path should not include connectivity information like protocol, host or port. So it would not include anything in the url before /api.
- The base_path should not include versions. While it can include versions there is a separate property for versions.
- Make sure version is correct. The version should not include and slash before or after - it should just be the version. So in the url above the version is v1. If there is no version, the version should be left as an empty string.
- The rest of the path comes from the entitypath in the Endpoint Configuration for the adapter (/adapter-home-dir/entities/specific-entity/action.json). If this path is incorrect (can happen if a newer version of the other system is being used or if it was not built correctly initially). You can change the path here.
Entitypath for a Call Example
"entitypath": "{base_path}/{version}/device_management/v1/device/{pathv1}/action/{pathv2}?{query}"
The parts of the path that are in {..} are replaced by the adapter library and should not be changed. So {base_path}, {version}, {pathv#} are all special within the adapter world and will be replaced before the call is made to the other system. Path variables {pathv#} allow for dynamic information (information that changes on a call by call basis) within the url.