Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

.Net: Fix for RestApiOperation.BuildQueryString #6662

Conversation

markwallace-microsoft
Copy link
Member

@markwallace-microsoft markwallace-microsoft commented Jun 11, 2024

Motivation and Context

We have noticed few cases where API calls were failing. Sample response:

"errors":{"since_create_time":["The value '2024-05-01T00:00:00\u002B00:00' is not valid."],"before_create_time":["The value '2024-05-31T23:59:59\u002B00:00' is not valid."]}}

We are passing the value correctly to SK as 2024-05-01T00:00:00+00:00 but then it’s getting transformed to '2024-05-01T00:00:00\u002B00:00 in this code here.

Then in this particular API these arguments are passed in the URL. The final URL is this: /campaigns?before_create_time=2024-05-31T23%3a59%3a59%5cu002B00%3a00&since_create_time=2024-05-01T00%3a00%3a00%5cu002B00%3a00

Now, I believe the problem is that everything would work just fine if these values were passed as the request payload to the API, where API would deserialize it correctly. But, since these are passed in URL, the value is never deserialized and stays broken.

Description

Contribution Checklist

@markwallace-microsoft markwallace-microsoft added the .NET Issue or Pull requests regarding .NET code label Jun 11, 2024
@github-actions github-actions bot changed the title Fix for RestApiOperation.BuildQueryString .Net: Fix for RestApiOperation.BuildQueryString Jun 11, 2024
@markwallace-microsoft markwallace-microsoft force-pushed the users/markwallace/build_query_string branch from 8fccaac to c6dc730 Compare June 11, 2024 13:00
@markwallace-microsoft markwallace-microsoft force-pushed the users/markwallace/build_query_string branch from 5951beb to ce435dc Compare June 11, 2024 14:43
@markwallace-microsoft markwallace-microsoft force-pushed the users/markwallace/build_query_string branch from 0913ae6 to dceb0cc Compare June 11, 2024 14:53
@markwallace-microsoft markwallace-microsoft marked this pull request as ready for review June 11, 2024 15:25
@markwallace-microsoft markwallace-microsoft requested a review from a team as a code owner June 11, 2024 15:25
@markwallace-microsoft markwallace-microsoft added this pull request to the merge queue Jun 11, 2024
Merged via the queue into microsoft:main with commit af875b6 Jun 11, 2024
15 checks passed
@markwallace-microsoft markwallace-microsoft deleted the users/markwallace/build_query_string branch June 11, 2024 17:26
LudoCorporateShark pushed a commit to LudoCorporateShark/semantic-kernel that referenced this pull request Aug 25, 2024
### Motivation and Context

We have noticed few cases where API calls were failing. Sample response:


"errors":{"since_create_time":["The value
'2024-05-01T00:00:00\u002B00:00' is not
valid."],"before_create_time":["The value
'2024-05-31T23:59:59\u002B00:00' is not valid."]}}


We are passing the value correctly to SK as 2024-05-01T00:00:00+00:00
but then it’s getting transformed to '2024-05-01T00:00:00\u002B00:00 in
[this code
here](https://github.com/microsoft/semantic-kernel/blob/275de5f08143172c1313f0e4da7a9eee4465a42a/dotnet/src/Functions/Functions.OpenApi/Serialization/OpenApiTypeConverter.cs#L30).

Then in this particular API these arguments are passed in the URL. The
final URL is this:
/campaigns?before_create_time=2024-05-31T23%3a59%3a59%5cu002B00%3a00&since_create_time=2024-05-01T00%3a00%3a00%5cu002B00%3a00

Now, I believe the problem is that everything would work just fine if
these values were passed as the request payload to the API, where API
would deserialize it correctly. But, since these are passed in URL, the
value is never deserialized and stays broken.

### Description

<!-- Describe your changes, the overall approach, the underlying design.
These notes will help understanding how your code works. Thanks! -->

### Contribution Checklist

<!-- Before submitting this PR, please make sure: -->

- [ ] The code builds clean without any errors or warnings
- [ ] The PR follows the [SK Contribution
Guidelines](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md)
and the [pre-submission formatting
script](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md#development-scripts)
raises no violations
- [ ] All unit tests pass, and I have added new tests where possible
- [ ] I didn't break anyone 😄
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
.NET Issue or Pull requests regarding .NET code
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

4 participants