You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+52-30Lines changed: 52 additions & 30 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -51,17 +51,30 @@ The 4me GraphQL API has a data type called `ISO8601Timestamp` which includes thr
51
51
52
52
These specific values can be accessed through the `DateTimeValue` class.
53
53
54
+
### Interface-based properties
55
+
Certain properties return objects that conform to an interface, providing flexibility in the variety of objects they can provide.
56
+
To obtain a specific object type from an interface-based property, it's crucial to indicate the desired type in the select statement of the query. Without specifying a type in the select statement, the property will return null.
57
+
The .NET SDK facilitates querying such properties by allowing multiple select statements. This feature enables the retrieval of diverse sets of values for each object.
58
+
54
59
## Mutations
55
60
Mutations are used to create, update, or delete data. Like queries, the SDK provides a simple and intuitive way to perform mutations.
56
61
57
62
## Attachments
58
63
The SDK features an `UploadAttachment` method for easily uploading attachments, which can later be associated with any create or update mutation.
59
64
The response from this request includes information necessary for linking these attachments.
60
65
61
-
## Multi-token support
66
+
## Events API
67
+
The .NET SDK provides access to the 4me Events API as well. For more information check out the [4me developer pages](https://developer.4me.com/v1/requests/events/).
68
+
69
+
## Multiple tokens
62
70
The client allows for the use of multiple authentication tokens. A single token is limited to 3600 API requests per hour or 5000 points per hour for Query Cost. In some situations, this may not be sufficient.
63
71
When there are multiple tokens in use, the client will always select the token with the most remaining requests to use. More information about [Rate Limiting](https://developer.4me.com/graphql/#request-rate-limits) and [Query Cost Limits](https://developer.4me.com/graphql/#query-cost-limit) can be found on the [4me developer website](https://developer.4me.com/graphql).
64
72
73
+
## Multiple accounts
74
+
When connecting to multiple accounts within a single application, it is recommended to use multiple `Sdk4meClient` instances.
75
+
While the `AccountID` can be set via the `Sdk4meClient.AccountID`, using the same client instance to execute multiple requests simultaneously across different accounts can lead to potential issues and unexpected behavior.
76
+
To ensure effective management of multiple accounts, it's advisable to utilize a dictionary structure. For further information, please refer to the [example](#multiple-accounts-usage).
77
+
65
78
## Response timing
66
79
The 4me GraphQL API limits the number of requests to 20 per 2 seconds. The SDK will keep track of the response time and lock the process to make sure it takes at least 100 milliseconds per request.
@@ -363,17 +390,7 @@ var updatedRequest = client.Mutation(new RequestUpdateInput()
363
390
}).Result;
364
391
```
365
392
366
-
### Trace output
367
-
A trace output providing details of a GraphQL query request and response time.
368
-
```json
369
-
{"id":"b1685ff0-6356-49eb-ab58-6ef32b9b4a61","method":"POST","uri":"https://graphql.4me.qa/","content":"{\"query\":\"query{node(id: \\\"KG1jIx\\\") {... on Person {id}}}\"}","account_id":"account-name"}
The .NET SDK provides access to the 4me Events API as well. For more information check out the [4me developer pages](https://developer.4me.com/v1/requests/events/).
By default the SDK will throw an new exception. The mutation method has one additional argument `throwOnError`, when false the `result` property will contain the error messages.
411
428
412
-
### Multi-token, accounts, environment and environment regions usage
429
+
### Authentication tokens, account, environment and environment regions usage
To ensure effective management of multiple accounts, it's recommended to employ a dictionary structure. This structure facilitates mapping each account to its corresponding `Sdk4meClient instance.
In the context of multiple 4me authentication tokens, request and cost scores are essential metrics used to determine the priority of tokens when making API requests. These scores help prioritize tokens efficiently by considering two critical factors.
To learn more about GraphQL Service Quotas, refer to the [Service Quota](https://developer.4me.com/graphql/#service-quotas-1) section, and for information on Rate Limiting, explore the [Rate Limiting](https://developer.4me.com/v1/#rate-limiting) section in the 4me developer documentation.
443
474
444
-
### Multiple accounts
445
-
When connecting to multiple accounts within a single application, it is recommended to use multiple `Sdk4meClient` instances.
446
-
While the `AccountID` can be set via the `Sdk4meClient.AccountID`, using the same client instance to execute multiple requests simultaneously across different accounts can lead to potential issues and unexpected behavior.
447
-
To ensure effective management of multiple accounts, it's advisable to utilize a dictionary structure. This allows you to map each account to its respective `Sdk4meClient` instance.
A trace output providing details of a GraphQL query request and response time.
477
+
```json
478
+
{"id":"b1685ff0-6356-49eb-ab58-6ef32b9b4a61","method":"POST","uri":"https://graphql.4me.qa/","content":"{\"query\":\"query{node(id: \\\"KG1jIx\\\") {... on Person {id}}}\"}","account_id":"account-name"}
0 commit comments