msgraph-sdk-java icon indicating copy to clipboard operation
msgraph-sdk-java copied to clipboard

Creating a Team always returns an empty Team : Cannot get the ID of the created Team.

Open ptrussart opened this issue 1 year ago • 5 comments

Describe the bug

Hello,

I'm using com.microsoft.graph:microsoft-graph:6.21.0 right now.

I'm trying to create a new team and then to get the ID, and the Operation ID of the result.

Team result = getGraphClient().teams().post(team);

The returned Team is always null as the JSON returned by the API is always empty. It seems that those informations are returned in the response header but I cannot access to it as the response is just a Team object. In v5, it was returned in the object.

How am I supposed to retrieve the ID and the Operation ID of a newly created Team ?

Expected behavior

I expected that the returned Team object will contain the ID and the Operation as it was the case in the v5 of this library.

How to reproduce

Create a team with the code :

Team result = getGraphClient().teams().post(team);

The result will always be a null object.

SDK Version

6.21.0

Latest version known to work for scenario above?

5.x

Known Workarounds

None

Debug output

Click to expand log ```
</details>


### Configuration

_No response_

### Other information

_No response_

ptrussart avatar Nov 28 '24 17:11 ptrussart

Hello,

I don't know if this is a bug or if I am supposed to do differently. Please can anyone help me ?

Regards

ptrussart avatar Dec 02 '24 07:12 ptrussart

Hello,

Is there anyone on this github to help us ? This has been 3 weeks since I have posted my original message.

What are we supposed to do ? Stop using the Java SDK and call directly the REST API ?

Regards

ptrussart avatar Dec 17 '24 16:12 ptrussart

Hi @ptrussart. My sincere apologies for the delayed response.

v6.x of this SDK tries to align better with expected API response payload. Creating a team is expected to return a 202 with no response body - reference docs

To inspect the response headers, you can override the default response handler to get an OkHttp Response object whose headers you can read. See the sample here

Please let me know if this helps.

Ndiritu avatar Dec 17 '24 18:12 Ndiritu

Hello, In V5, this returned the id is as result. Why is it not the case in V6 ?

ptrussart avatar Dec 22 '24 00:12 ptrussart

Hey, I faced the same issue and tried your suggestion as explained @Ndiritu. I was able to get the Headers with that.

However, the API is very irritating, since it still describes in the JavaDoc, like it did in V5, that a Team object is returned from the post request:

Image

I guess, if this never is the case with v6 now, the return should be removed from the method, thus returning void, to reduce further irritations :)

Also if I want to get other information (e.g. the webUrl) with v6 after a post I always need to get the new team id by reading it from headers as described with NativeResponseHandler, read "content-location" from the headers and then do another get request for the new team with that id, is that correct?

coinzz avatar Apr 15 '25 13:04 coinzz