Yes, the API has to support partial failures across all six supported languages. Not all operations need to be atomic and there is considerable efficiency in having multiple operations sent in a single request. Thanks, -David
On Thu, Feb 20, 2020 at 6:07 PM Rob Gaddi <rgaddi@highlandtechnology.invalid> wrote: > On 2/20/20 9:30 AM, David Wihl wrote: > > > > (first post) > > > > I'm working on the Python client library [0]for the Google Ads API [1]. > In some cases, we can start a request with a partial failure [2] flag = > True. This means that the request may contain say 1000 operations. If any > of the operations fail, the request will return with a success status > without an exception. Then the developer has to iterate through the list of > operation return statuses to determine which specific ones failed (example > [3]). > > > > I believe that it would be more idiomatic in Python (and other languages > like Ruby) to throw an exception when one of these partial errors occur. > That way there would be the same control flow if a major or minor error > occurred. > > > > The team is asking me for other examples or justification of this being > idiomatic of Python. Can you recommend any examples or related best > practices? > > > > [0] https://github.com/googleads/google-ads-python > > > > [1] https://developers.google.com/google-ads/api/docs/start > > > > [2] > https://developers.google.com/google-ads/api/docs/best-practices/partial-failures > > > > [3] > https://github.com/googleads/google-ads-python/blob/master/examples/error_handling/handle_partial_failure.py > > > > Thanks! > > -David > > > > Potentially stupid question, does your library to the API have to support > partial failures? Sure Google Ads does, but does it really add value to > do so? > And then you've got to decide what to DO with those partially failed > results. > > You could, as a library, just say "No, this library never sets the > partial_failure field. We only support atomic transactions that fully > succeed > or fully fail and raise an exception." Makes your life a lot easier; so > unless > it makes your customer's lives a lot harder... > -- > https://mail.python.org/mailman/listinfo/python-list > -- https://mail.python.org/mailman/listinfo/python-list