I am trying to call a put path, but the parameters are being passed incorrectly by Power Automate. Here is the path:
"/pickticket/{id}": {
"put": {
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/pickticket"
}
},
"default": {
"description": "default response"
}
},
"summary": "Update Pick ticket",
"description": "Updates a specific pick ticket by setting the values of the parameters passed.",
"operationId": "UpdatePickTicket",
"x-ms-visibility": "important",
"parameters": [
{
"in": "path",
"name": "id",
"type": "number",
"x-ms-summary": "ID",
"description": "Pick Ticket ID to update",
"required": true,
"x-ms-visibility": "important",
"x-ms-url-encoding": "single"
},
{
"in": "body",
"name": "pickticket",
"description": "The pick ticket to update.",
"schema": {
"$ref": "#/definitions/pickticket"
},
"x-ms-summary": "Update Pick Ticket",
"x-ms-visibility": "important"
}
]
}
}
The pickticket object is long, but it starts like this:
"pickticket": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "Pick Ticket ID",
"example": "123"
},
"starred": {
"type": "number",
"example": "0"
},
When I call the connector, here's what gets passed as the raw inputs:
{
"host": {
"connectionReferenceName": "shared_sos-5f54f6a6de2478405b-5fcfe0f35f8ba8a5fd",
"operationId": "UpdatePickTicket"
},
"parameters": {
"id": 44,
"pickticket/id": 44,
"pickticket/starred": 0,
This is not what I would have expected. I would have expected just the pickticket object to be passed. Swagger Hub handles this correctly, by the way. If I upload the apiDefinition.swagger.json to SwaggerHub, it works flawlessly. Also, when I test it in Power automate using the test facility when creating the custom connector, it seems to work, although I think MSFT is just using SwaggerHub for that. The only thing that doesn't work is when you update the connector and actually try to use it.
To me, it looks like puts just don't work with Power Automate, but that hardly seems likely.
Update: The raw inputs shown above are not the raw inputs that get passed out of the connector to the API. They are literally the raw inputs into the connector itself. What gets passed out of the connector is not known. One would have to repoint the connector to a service such as Postman to find that. My original message was posted before I understood that.
The problem I am experiencing is much deeper than this, see my other posts on this topic.