Geocoder icon indicating copy to clipboard operation
Geocoder copied to clipboard

Take exception message from provider response in case of statusCode >= 400

Open sidz opened this issue 2 years ago • 0 comments

Hey guys.

So I as a developer would like to see message from provider response rather than generic The geocoder server returned an invalid response (%d) for query "%s". We could not parse it. message.

We faced with an issue which is pretty hard to debug on dockerized application. It would be much easier to understand what went wrong if we get message from particular provider response in case InvalidServerResponse is thrown on line: https://github.com/geocoder-php/Geocoder/blob/master/src/Http/Provider/AbstractHttpProvider.php#L78

The main issue that each provider has their own response structure in case of bad request occurs. I don't see a good solution here so far and I have only 2 thoughts so far:

  • getParsedResponse method need to be an abstract so each provider will implement their own mechanism of catching errors. https://github.com/geocoder-php/Geocoder/blob/master/src/Http/Provider/AbstractHttpProvider.php#L68-L87
  • We could add another abstract method like abstract protected function throwClientException(string $message) method inside of an AbstractHttpProvider class. And each provider have to implement it.

I suppose it is kind of feature request.

sidz avatar Oct 25 '23 18:10 sidz