I get an HTTP 415 error trying to register a JSON file when registering using the Swagger UI.
https://localhost:8443/TDMModelService/swagger-ui.html#!/object45controller/createObjectUsingPOST
Test Data Manager
TDM
API
Unfortunately, there is a known limitation for
Swagger UI related to this issue - https://github.com/springfox/springfox/issues/2202.
According to this, we cannot specify any content type for
specific parts of type formData.
Ways to work around this issue:
Swagger provides sample cURL record which can be executed separately
Here is the actual record -
curl -X POST --header 'Content-Type: multipart/form-data' --header 'Accept: application/json' --header 'Authorization: Bearer <some token>' -F body={"objectType":"CSV","headerAt":1,"dataStartsAt":2,"tableNames":[]} -F files=Sample.csv 'http://localhost:9999/TDMModelService/api/ca/v1/objects?projectId=7548&versionId=7549'
We need to introduce 2 modifications for this record to make it work:
1. There needs to be added ;type=application/json
2. Data for body part of formData should have escaped quotes (with backslashes).
These changes are higlighted as bold below
curl -X POST --header 'Content-Type: multipart/form-data' --header 'Accept: application/json' --header 'Authorization: Bearer <some token>' -F body={\"objectType\":\"CSV\",\"headerAt\":1,\"dataStartsAt\":2,\"tableNames\":[]};type=application/json -F files=Sample.csv 'http://localhost:9999/TDMModelService/api/ca/v1/objects?projectId=7548&versionId=7549'