google vision api issue query

google vision api issue query

  

I managed to get successful respond message in the rest api test screen, but after I call the api from test app screen, pass in the 4 parameter highlighted and it is the same value I used for the api testing,  it shows error 404.

anyone has the same problem?

post url:
https://vision.googleapis.com/v1/images:annotate?key={key}

request:

------------------------------------------------------------
{
  "requests":[
    {
      "image":{
        "source": {
          "gcs_image_uri":"gs://bucket-name/path_to_image_object"
        }
      },
      "features": [
        {
          "type":"LABEL_DETECTION",
          "maxResults":1
        }
      ]
    }
  ]
}


------------------------------------------------------------

responds

------------------------------------------------------------


{
  "responses": [
    {
      "textAnnotations": [
        {
          "locale": "en",
          "description": "reading\nSources\nWeb\narticle\nrather\nidea\nSemantic new\nSearch\nassociations\nWay\npractica\nresults\nrticles\nbaaksinformation\ndata\npublished\nauthor foreet\n",
          "boundingPoly": {
            "vertices": [
              {
                "x": 1,
                "y": 32
              },
              {
                "x": 269,
                "y": 32
              },
              {
                "x": 269,
                "y": 162
              },
              {
                "x": 1,
                "y": 162
              }
            ]
          }
        },
        {
          "description": "reading",
          "boundingPoly": {
            "vertices": [
              {
                "x": 203,
                "y": 32
              },
              {
                "x": 235,
                "y": 32
              },
              {
                "x": 235,
                "y": 43
              },
              {
                "x": 203,
                "y": 43
              }
            ]
          }
        },
        {
          "description": "Sources",
          "boundingPoly": {
            "vertices": [
              {
                "x": 139,
                "y": 35
              },
              {
                "x": 183,
                "y": 35
              },
              {
                "x": 183,
                "y": 45
              },
              {
                "x": 139,
                "y": 45
              }
            ]
          }
        },
        {
          "description": "Web",
          "boundingPoly": {
            "vertices": [
              {
                "x": 158,
                "y": 68
              },
              {
                "x": 229,
                "y": 68
              },
              {
                "x": 229,
                "y": 111
              },
              {
                "x": 158,
                "y": 111
              }
            ]
          }
        },
        {
          "description": "article",
          "boundingPoly": {
            "vertices": [
              {
                "x": 226,
                "y": 71
              },
              {
                "x": 260,
                "y": 71
              },
              {
                "x": 260,
                "y": 84
              },
              {
                "x": 226,
                "y": 84
              }
            ]
          }
        },
        {
          "description": "rather",
          "boundingPoly": {
            "vertices": [
              {
                "x": 46,
                "y": 91
              },
              {
                "x": 72,
                "y": 91
              },
              {
                "x": 72,
                "y": 102
              },
              {
                "x": 46,
                "y": 102
              }
            ]
          }
        },
        {
          "description": "idea",
          "boundingPoly": {
            "vertices": [
              {
                "x": 126,
                "y": 79
              },
              {
                "x": 158,
                "y": 80
              },
              {
                "x": 157,
                "y": 97
              },
              {
                "x": 125,
                "y": 96
              }
            ]
          }
        },
        {
          "description": "Semantic",
          "boundingPoly": {
            "vertices": [
              {
                "x": 72,
                "y": 94
              },
              {
                "x": 122,
                "y": 94
              },
              {
                "x": 122,
                "y": 112
              },
              {
                "x": 72,
                "y": 112
              }
            ]
          }
        },
        {
          "description": "new",
          "boundingPoly": {
            "vertices": [
              {
                "x": 112,
                "y": 118
              },
              {
                "x": 127,
                "y": 118
              },
              {
                "x": 127,
                "y": 126
              },
              {
                "x": 112,
                "y": 126
              }
            ]
          }
        },
        {
          "description": "Search",
          "boundingPoly": {
            "vertices": [
              {
                "x": 130,
                "y": 104
              },
              {
                "x": 205,
                "y": 104
              },
              {
                "x": 205,
                "y": 133
              },
              {
                "x": 130,
                "y": 133
              }
            ]
          }
        },
        {
          "description": "associations",
          "boundingPoly": {
            "vertices": [
              {
                "x": 230,
                "y": 84
              },
              {
                "x": 266,
                "y": 84
              },
              {
                "x": 266,
                "y": 91
              },
              {
                "x": 230,
                "y": 91
              }
            ]
          }
        },
        {
          "description": "Way",
          "boundingPoly": {
            "vertices": [
              {
                "x": 238,
                "y": 93
              },
              {
                "x": 264,
                "y": 93
              },
              {
                "x": 264,
                "y": 111
              },
              {
                "x": 238,
                "y": 111
              }
            ]
          }
        },
        {
          "description": "practica",
          "boundingPoly": {
            "vertices": [
              {
                "x": 209,
                "y": 107
              },
              {
                "x": 252,
                "y": 107
              },
              {
                "x": 252,
                "y": 124
              },
              {
                "x": 209,
                "y": 124
              }
            ]
          }
        },
        {
          "description": "results",
          "boundingPoly": {
            "vertices": [
              {
                "x": 1,
                "y": 117
              },
              {
                "x": 49,
                "y": 117
              },
              {
                "x": 49,
                "y": 133
              },
              {
                "x": 1,
                "y": 133
              }
            ]
          }
        },
        {
          "description": "rticles",
          "boundingPoly": {
            "vertices": [
              {
                "x": 105,
                "y": 129
              },
              {
                "x": 140,
                "y": 129
              },
              {
                "x": 140,
                "y": 142
              },
              {
                "x": 105,
                "y": 142
              }
            ]
          }
        },
        {
          "description": "baaksinformation",
          "boundingPoly": {
            "vertices": [
              {
                "x": 177,
                "y": 130
              },
              {
                "x": 267,
                "y": 130
              },
              {
                "x": 267,
                "y": 147
              },
              {
                "x": 177,
                "y": 147
              }
            ]
          }
        },
        {
          "description": "data",
          "boundingPoly": {
            "vertices": [
              {
                "x": 142,
                "y": 138
              },
              {
                "x": 172,
                "y": 138
              },
              {
                "x": 172,
                "y": 147
              },
              {
                "x": 142,
                "y": 147
              }
            ]
          }
        },
        {
          "description": "published",
          "boundingPoly": {
            "vertices": [
              {
                "x": 189,
                "y": 147
              },
              {
                "x": 226,
                "y": 147
              },
              {
                "x": 226,
                "y": 162
              },
              {
                "x": 189,
                "y": 162
              }
            ]
          }
        },
        {
          "description": "author",
          "boundingPoly": {
            "vertices": [
              {
                "x": 230,
                "y": 151
              },
              {
                "x": 248,
                "y": 151
              },
              {
                "x": 248,
                "y": 161
              },
              {
                "x": 230,
                "y": 161
              }
            ]
          }
        },
        {
          "description": "foreet",
          "boundingPoly": {
            "vertices": [
              {
                "x": 251,
                "y": 151
              },
              {
                "x": 269,
                "y": 151
              },
              {
                "x": 269,
                "y": 161
              },
              {
                "x": 251,
                "y": 161
              }
            ]
          }
        }
      ]
    }
  ]
}






I suspect that the colon in the URL might be screwing things up.

Did you turn on Troubleshooting to catch the actual request being made?

This should provide valuable insight into what is happening.

Ricardo Silva wrote:

I suspect that the colon in the URL might be screwing things up.

Did you turn on Troubleshooting to catch the actual request being made?

This should provide valuable insight into what is happening.

thanks a lot, the colon is causing issue:

in integration log it shows: https://vision.googleapis.com/v1/images%3Aannotate

the colon is repaced with %3...


any idea how to fix it? I am searching for answer also.


Hi Leo,

The issue, like Ricardo said, is the colon in the URL (https:///vision.....images:annotate........). It is a known issue of how encoding is being done for certain characters. In this case the ':' is being converted to '%3A'.

As a workaround, you can fix the URL by  creating a OnBeforeRequest action and altering the URL of the HTTPRequest returned by that action.


You can also check the documentation: http://www.outsystems.com/help/ServiceStudio/9.1/index.htm#t=Integrating_with_other_systems%2FWeb_Services%2FSimple_Customizations.htm.


Cheers

I would try to add an OnBeforeRequest handler to change the URL back to what it's supposed to be.

Just add a handler for OnBeforeRequest and try to change the URL on the requet to replace %3A with colon.

Thank you all, error resolved using OnBeforeRequest 

inside the OnBeforeRequest action, there is no request details, the request body should be inside the RequestText field?


That's right, the RequestText field corresponds to the request body. But if you can set the value of the request when calling the REST API with correspondent the input parameter, that better that setting it in the OnBeforeRequest.

when i call the web service, the input object vslue are already set, should it construct the body automatically?

Yes, it should already be set.

What must be happening is that the structure of input parameter has all its fields with 'Send Default Value' to False and the structure you are using has all the values  equal to their defaults.

If that is the case, then you can set the field's property 'Send Default Value' to True and that field should always appear in JSON.

there is no default value setup, i attached the app, please help to check if possible.


Yes, you are right, you can't change the value there (because they are input parameters of a REST invocation). But if you go to the Data tab, you can change the Send Default Value property of each field of the Request structure.

If you start the debugger and check the text on the request body, it will have:



If for each field of Structure RequestItem2 you set 'Send Default Value' to True and you do the same field for each field of all the nested Structures, then you will be always sending the complete information. How much this matters depends of how the REST APIs you are using work. Some accept just sending needed values, others require sending the full representation on the JSON.

In this link there is more information on how OutSystems treats Default Values  (section Sending Default Values).


i changed all structure send default value  to yes, but only got below value

Solution

That's because you aren't passing any request to the RequestItem list, right? In that case you have an empty list, which is represented in JSON as [].

Solution

found the issue, did not pass the value correctly, thanks a lot.

You are welcome. I'm glad to be of assistance.