Skip to content

Commit 17c53a0

Browse files
authored
Merge pull request #176 from fingerprintjs/docs/structured-error-handling
2 parents 64800a9 + 161eb30 commit 17c53a0

4 files changed

Lines changed: 135 additions & 31 deletions

File tree

README.md

Lines changed: 40 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ Delete visitor data using `visitorId`:
9696
import os
9797

9898
import fingerprint_server_sdk
99-
from fingerprint_server_sdk import ApiException
99+
from fingerprint_server_sdk import ApiException, ErrorResponse
100100
from fingerprint_server_sdk.configuration import Region
101101

102102
# Configure API key authorization and region
@@ -111,7 +111,15 @@ visitor_id = 'visitor_id_example'
111111
try:
112112
api_instance.delete_visitor_data(visitor_id)
113113
except ApiException as e:
114-
print(f'Exception when calling FingerprintApi->delete_visitor_data: {e}\n')
114+
if e.body is not None:
115+
error_response = ErrorResponse.from_json(e.body)
116+
if error_response is not None:
117+
message = f"API request failed: {error_response.error.code} {error_response.error.message}"
118+
else:
119+
message = f"API request failed with unexpected error format: {e}"
120+
else:
121+
message = f'Exception when calling FingerprintApi->delete_visitor_data: {e}'
122+
print(message)
115123
```
116124

117125
To learn more, refer to example located in [examples/delete_visitor_example.py](examples/delete_visitor_example.py).
@@ -121,7 +129,7 @@ Fetching event details for `eventId`:
121129
import os
122130

123131
import fingerprint_server_sdk
124-
from fingerprint_server_sdk import ApiException
132+
from fingerprint_server_sdk import ApiException, ErrorResponse
125133
from fingerprint_server_sdk.configuration import Region
126134

127135
# Configure API key authorization and region
@@ -136,7 +144,15 @@ event_id = 'event_id_example'
136144
try:
137145
events_response = api_instance.get_event(event_id)
138146
except ApiException as e:
139-
print(f'Exception when calling FingerprintApi->get_event: {e}\n')
147+
if e.body is not None:
148+
error_response = ErrorResponse.from_json(e.body)
149+
if error_response is not None:
150+
message = f"API request failed: {error_response.error.code} {error_response.error.message}"
151+
else:
152+
message = f"API request failed with unexpected error format: {e}"
153+
else:
154+
message = f'Exception when calling FingerprintApi->get_event: {e}'
155+
print(message)
140156
```
141157

142158
To learn more, refer to example located in [examples/get_event_example.py](examples/get_event_example.py).
@@ -146,7 +162,7 @@ Search events with custom filters:
146162
import os
147163

148164
import fingerprint_server_sdk
149-
from fingerprint_server_sdk import ApiException, SearchEventsBot
165+
from fingerprint_server_sdk import ApiException, SearchEventsBot, ErrorResponse
150166
from fingerprint_server_sdk.configuration import Region
151167

152168
# Configure API key authorization and region
@@ -172,7 +188,15 @@ try:
172188
api_response = api_instance.search_events(limit, pagination_key=pagination_key, visitor_id=visitor_id, bot=bot, ip_address=ip_address, linked_id=linked_id, start=start, end=end, reverse=reverse, suspect=suspect)
173189
print(api_response)
174190
except ApiException as e:
175-
print(f'Exception when calling FingerprintApi->get_event: {e}\n')
191+
if e.body is not None:
192+
error_response = ErrorResponse.from_json(e.body)
193+
if error_response is not None:
194+
message = f"API request failed: {error_response.error.code} {error_response.error.message}"
195+
else:
196+
message = f"API request failed with unexpected error format: {e}"
197+
else:
198+
message = f'Exception when calling FingerprintApi->get_event: {e}'
199+
print(message)
176200
```
177201

178202
To learn more, refer to example located in [examples/search_events_example.py](examples/search_events_example.py).
@@ -182,7 +206,7 @@ Update event for `eventId`:
182206
import os
183207

184208
import fingerprint_server_sdk
185-
from fingerprint_server_sdk import ApiException, EventUpdate
209+
from fingerprint_server_sdk import ApiException, EventUpdate, ErrorResponse
186210
from fingerprint_server_sdk.configuration import Region
187211

188212
# Configure API key authorization and region
@@ -201,7 +225,15 @@ body = EventUpdate(linked_id='foo')
201225
try:
202226
api_instance.update_event(event_id, body)
203227
except ApiException as e:
204-
print(f'Exception when calling FingerprintApi->update_event: {e}\n')
228+
if e.body is not None:
229+
error_response = ErrorResponse.from_json(e.body)
230+
if error_response is not None:
231+
message = f"API request failed: {error_response.error.code} {error_response.error.message}"
232+
else:
233+
message = f"API request failed with unexpected error format: {e}"
234+
else:
235+
message = f'Exception when calling FingerprintApi->update_event: {e}'
236+
print(message)
205237
```
206238

207239
To learn more, refer to example located in [examples/update_event_example.py](examples/update_event_example.py).

docs/FingerprintApi.md

Lines changed: 44 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ Please [contact our support team](https://fingerprint.com/support/) to enable it
4646
import os
4747

4848
import fingerprint_server_sdk
49-
from fingerprint_server_sdk.rest import ApiException
49+
from fingerprint_server_sdk import ApiException, ErrorResponse
5050
from fingerprint_server_sdk.configuration import Region
5151
from pprint import pprint
5252

@@ -64,8 +64,16 @@ visitor_id: str = 'visitor_id_example' # The [visitor ID](https://docs.fingerpri
6464
try:
6565
# Delete data by visitor ID
6666
api_instance.delete_visitor_data(visitor_id)
67-
except Exception as e:
68-
print("Exception when calling FingerprintApi->delete_visitor_data: %s\n" % e)
67+
except ApiException as e:
68+
if e.body is not None:
69+
error_response = ErrorResponse.from_json(e.body)
70+
if error_response is not None:
71+
message = f"API request failed: {error_response.error.code} {error_response.error.message}"
72+
else:
73+
message = f"API request failed with unexpected error format: {e}"
74+
else:
75+
message = f'Exception when calling FingerprintApi->delete_visitor_data: {e}'
76+
print(message)
6977
```
7078

7179
### Parameters
@@ -112,7 +120,7 @@ import os
112120

113121
import fingerprint_server_sdk
114122
from fingerprint_server_sdk.models.event import Event
115-
from fingerprint_server_sdk.rest import ApiException
123+
from fingerprint_server_sdk import ApiException, ErrorResponse
116124
from fingerprint_server_sdk.configuration import Region
117125
from pprint import pprint
118126

@@ -133,8 +141,16 @@ try:
133141
api_response = api_instance.get_event(event_id, ruleset_id=ruleset_id)
134142
print("The response of FingerprintApi->get_event:\n")
135143
pprint(api_response)
136-
except Exception as e:
137-
print("Exception when calling FingerprintApi->get_event: %s\n" % e)
144+
except ApiException as e:
145+
if e.body is not None:
146+
error_response = ErrorResponse.from_json(e.body)
147+
if error_response is not None:
148+
message = f"API request failed: {error_response.error.code} {error_response.error.message}"
149+
else:
150+
message = f"API request failed with unexpected error format: {e}"
151+
else:
152+
message = f'Exception when calling FingerprintApi->get_event: {e}'
153+
print(message)
138154
```
139155

140156
### Parameters
@@ -204,7 +220,7 @@ from fingerprint_server_sdk.models.event_search import EventSearch
204220
from fingerprint_server_sdk.models.search_events_bot import SearchEventsBot
205221
from fingerprint_server_sdk.models.search_events_sdk_platform import SearchEventsSdkPlatform
206222
from fingerprint_server_sdk.models.search_events_vpn_confidence import SearchEventsVpnConfidence
207-
from fingerprint_server_sdk.rest import ApiException
223+
from fingerprint_server_sdk import ApiException, ErrorResponse
208224
from fingerprint_server_sdk.configuration import Region
209225
from pprint import pprint
210226

@@ -262,8 +278,16 @@ try:
262278
api_response = api_instance.search_events(limit=limit, pagination_key=pagination_key, visitor_id=visitor_id, bot=bot, ip_address=ip_address, asn=asn, linked_id=linked_id, url=url, bundle_id=bundle_id, package_name=package_name, origin=origin, start=start, end=end, reverse=reverse, suspect=suspect, vpn=vpn, virtual_machine=virtual_machine, tampering=tampering, anti_detect_browser=anti_detect_browser, incognito=incognito, privacy_settings=privacy_settings, jailbroken=jailbroken, frida=frida, factory_reset=factory_reset, cloned_app=cloned_app, emulator=emulator, root_apps=root_apps, vpn_confidence=vpn_confidence, min_suspect_score=min_suspect_score, developer_tools=developer_tools, location_spoofing=location_spoofing, mitm_attack=mitm_attack, proxy=proxy, sdk_version=sdk_version, sdk_platform=sdk_platform, environment=environment, proximity_id=proximity_id, total_hits=total_hits, tor_node=tor_node)
263279
print("The response of FingerprintApi->search_events:\n")
264280
pprint(api_response)
265-
except Exception as e:
266-
print("Exception when calling FingerprintApi->search_events: %s\n" % e)
281+
except ApiException as e:
282+
if e.body is not None:
283+
error_response = ErrorResponse.from_json(e.body)
284+
if error_response is not None:
285+
message = f"API request failed: {error_response.error.code} {error_response.error.message}"
286+
else:
287+
message = f"API request failed with unexpected error format: {e}"
288+
else:
289+
message = f'Exception when calling FingerprintApi->search_events: {e}'
290+
print(message)
267291
```
268292

269293
### Parameters
@@ -353,7 +377,7 @@ import os
353377

354378
import fingerprint_server_sdk
355379
from fingerprint_server_sdk.models.event_update import EventUpdate
356-
from fingerprint_server_sdk.rest import ApiException
380+
from fingerprint_server_sdk import ApiException, ErrorResponse
357381
from fingerprint_server_sdk.configuration import Region
358382
from pprint import pprint
359383

@@ -372,8 +396,16 @@ event_update: EventUpdate = fingerprint_server_sdk.EventUpdate() #
372396
try:
373397
# Update an event
374398
api_instance.update_event(event_id, event_update)
375-
except Exception as e:
376-
print("Exception when calling FingerprintApi->update_event: %s\n" % e)
399+
except ApiException as e:
400+
if e.body is not None:
401+
error_response = ErrorResponse.from_json(e.body)
402+
if error_response is not None:
403+
message = f"API request failed: {error_response.error.code} {error_response.error.message}"
404+
else:
405+
message = f"API request failed with unexpected error format: {e}"
406+
else:
407+
message = f'Exception when calling FingerprintApi->update_event: {e}'
408+
print(message)
377409
```
378410

379411
### Parameters

template/api_doc_example.mustache

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import {{{packageName}}}
66
{{#vendorExtensions.x-py-example-import}}
77
{{{.}}}
88
{{/vendorExtensions.x-py-example-import}}
9-
from {{{packageName}}}.rest import ApiException
9+
from {{{packageName}}} import ApiException, ErrorResponse
1010
from {{packageName}}.configuration import Region
1111
from pprint import pprint
1212

@@ -29,6 +29,14 @@ try:
2929
print("The response of {{classname}}->{{operationId}}:\n")
3030
pprint(api_response)
3131
{{/returnType}}
32-
except Exception as e:
33-
print("Exception when calling {{classname}}->{{operationId}}: %s\n" % e)
32+
except ApiException as e:
33+
if e.body is not None:
34+
error_response = ErrorResponse.from_json(e.body)
35+
if error_response is not None:
36+
message = f"API request failed: {error_response.error.code} {error_response.error.message}"
37+
else:
38+
message = f"API request failed with unexpected error format: {e}"
39+
else:
40+
message = f'Exception when calling {{classname}}->{{operationId}}: {e}'
41+
print(message)
3442
```

template/common_README.mustache

Lines changed: 40 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Delete visitor data using `visitorId`:
1717
import os
1818

1919
import {{packageName}}
20-
from {{packageName}} import ApiException
20+
from {{packageName}} import ApiException, ErrorResponse
2121
from {{packageName}}.configuration import Region
2222

2323
{{> python_doc_auth_partial}}
@@ -29,7 +29,15 @@ visitor_id = 'visitor_id_example'
2929
try:
3030
api_instance.delete_visitor_data(visitor_id)
3131
except ApiException as e:
32-
print(f'Exception when calling FingerprintApi->delete_visitor_data: {e}\n')
32+
if e.body is not None:
33+
error_response = ErrorResponse.from_json(e.body)
34+
if error_response is not None:
35+
message = f"API request failed: {error_response.error.code} {error_response.error.message}"
36+
else:
37+
message = f"API request failed with unexpected error format: {e}"
38+
else:
39+
message = f'Exception when calling FingerprintApi->delete_visitor_data: {e}'
40+
print(message)
3341
```
3442

3543
To learn more, refer to example located in [examples/delete_visitor_example.py](examples/delete_visitor_example.py).
@@ -39,7 +47,7 @@ Fetching event details for `eventId`:
3947
import os
4048

4149
import {{packageName}}
42-
from {{packageName}} import ApiException
50+
from {{packageName}} import ApiException, ErrorResponse
4351
from {{packageName}}.configuration import Region
4452

4553
{{> python_doc_auth_partial}}
@@ -51,7 +59,15 @@ event_id = 'event_id_example'
5159
try:
5260
events_response = api_instance.get_event(event_id)
5361
except ApiException as e:
54-
print(f'Exception when calling FingerprintApi->get_event: {e}\n')
62+
if e.body is not None:
63+
error_response = ErrorResponse.from_json(e.body)
64+
if error_response is not None:
65+
message = f"API request failed: {error_response.error.code} {error_response.error.message}"
66+
else:
67+
message = f"API request failed with unexpected error format: {e}"
68+
else:
69+
message = f'Exception when calling FingerprintApi->get_event: {e}'
70+
print(message)
5571
```
5672

5773
To learn more, refer to example located in [examples/get_event_example.py](examples/get_event_example.py).
@@ -61,7 +77,7 @@ Search events with custom filters:
6177
import os
6278

6379
import {{packageName}}
64-
from {{packageName}} import ApiException, SearchEventsBot
80+
from {{packageName}} import ApiException, SearchEventsBot, ErrorResponse
6581
from {{packageName}}.configuration import Region
6682

6783
{{> python_doc_auth_partial}}
@@ -84,7 +100,15 @@ try:
84100
api_response = api_instance.search_events(limit, pagination_key=pagination_key, visitor_id=visitor_id, bot=bot, ip_address=ip_address, linked_id=linked_id, start=start, end=end, reverse=reverse, suspect=suspect)
85101
print(api_response)
86102
except ApiException as e:
87-
print(f'Exception when calling FingerprintApi->get_event: {e}\n')
103+
if e.body is not None:
104+
error_response = ErrorResponse.from_json(e.body)
105+
if error_response is not None:
106+
message = f"API request failed: {error_response.error.code} {error_response.error.message}"
107+
else:
108+
message = f"API request failed with unexpected error format: {e}"
109+
else:
110+
message = f'Exception when calling FingerprintApi->get_event: {e}'
111+
print(message)
88112
```
89113

90114
To learn more, refer to example located in [examples/search_events_example.py](examples/search_events_example.py).
@@ -94,7 +118,7 @@ Update event for `eventId`:
94118
import os
95119

96120
import {{packageName}}
97-
from {{packageName}} import ApiException, EventUpdate
121+
from {{packageName}} import ApiException, EventUpdate, ErrorResponse
98122
from {{packageName}}.configuration import Region
99123

100124
{{> python_doc_auth_partial}}
@@ -110,7 +134,15 @@ body = EventUpdate(linked_id='foo')
110134
try:
111135
api_instance.update_event(event_id, body)
112136
except ApiException as e:
113-
print(f'Exception when calling FingerprintApi->update_event: {e}\n')
137+
if e.body is not None:
138+
error_response = ErrorResponse.from_json(e.body)
139+
if error_response is not None:
140+
message = f"API request failed: {error_response.error.code} {error_response.error.message}"
141+
else:
142+
message = f"API request failed with unexpected error format: {e}"
143+
else:
144+
message = f'Exception when calling FingerprintApi->update_event: {e}'
145+
print(message)
114146
```
115147

116148
To learn more, refer to example located in [examples/update_event_example.py](examples/update_event_example.py).

0 commit comments

Comments
 (0)