> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# PUT (/serviceconfigs/{scid}/sessiontemplates/{sessionTemplateName}/sessions/{sessionName})

> PUT (/serviceconfigs/{scid}/sessiontemplates/{sessionTemplateName}/sessions/{sessionName})

# PUT (/serviceconfigs/{scid}/sessiontemplates/{sessionTemplateName}/sessions/{sessionName})

Cria, atualiza ou ingressa em uma sessão.

> **Importante:**\
> Este método de URI requer um elemento de cabeçalho X-Xbl-Contract-Version: 104/105 ou posterior em todas as solicitações.

* [Comentários](#ID4ET)
* [Parâmetros de URI](#ID4EYB)
* [Códigos de status HTTP](#ID4EFC)
* [Corpo da solicitação](#ID4EOC)
* [Corpo da resposta](#ID4E4C)

<a id="ID4ET" />

## Comentários

Este método HTTP/REST cria, ingressa ou atualiza uma sessão, dependendo de qual subconjunto do mesmo modelo de corpo de solicitação JSON é enviado. Em caso de êxito, ele retorna um objeto **MultiplayerSession** que contém a resposta retornada pelo servidor. Os atributos nele podem ser diferentes dos atributos do objeto **MultiplayerSession** passado. Este método pode ser encapsulado por **Microsoft.Xbox.Services.Multiplayer.MultiplayerService.WriteSessionAsync**.

As operações de criação e atualização de sessão usam PUT com um corpo application/json que representa as alterações a serem aplicadas. As operações são idempotentes, ou seja, várias aplicações das mesmas alterações não têm efeito adicional.

O corpo da solicitação JSON espelha a estrutura de dados da sessão. Todos os campos e subcampos são opcionais.

O formato de transmissão do modo de criação ou ingresso em sessão do método PUT é mostrado abaixo.

> **Observação:**\
> Tenha cuidado ao usar esse padrão. As atualizações são aplicadas às cegas, independentemente do estado atual da sessão.

```cpp theme={null}
PUT /serviceconfigs/00000000-0000-0000-0000-000000000000/sessiontemplates/quick/sessions/00000000-0000-0000-0000-000000000001 HTTP/1.1
         Content-Type: application/json

```

O formato de transmissão do modo de atualização de sessão do método PUT é mostrado abaixo.

```cpp theme={null}
PUT /serviceconfigs/00000000-0000-0000-0000-000000000000/sessiontemplates/quick/sessions/00000000-0000-0000-0000-000000000001 HTTP/1.1
         Content-Type: application/json

```

O formato de transmissão do método PUT para atualizar as propriedades da sessão é mostrado abaixo. Ele equivale a uma operação PUT no URI da sessão com um corpo que contém apenas o objeto abaixo como propriedades. A diferença é que essa operação retorna o código de erro 404 Not Found se a sessão não existir. Essa operação dá suporte ao cabeçalho If-Match.

```cpp theme={null}
PUT /serviceconfigs/00000000-0000-0000-0000-000000000000/sessiontemplates/quick/sessions/00000000-0000-0000-0000-000000000001/properties HTTP/1.1
         Content-Type: application/json

         { "system": { }, "custom": { } }

```

<a id="ID4EYB" />

## Parâmetros de URI

\| Parâmetro| Tipo| Descrição|
\| --- | --- | --- | --- | --- |
\| scid| GUID| Identificador de configuração de serviço (SCID). Parte 1 do identificador da sessão.|
\| sessionTemplateName| string| Nome da instância atual do modelo de sessão. Parte 2 do identificador da sessão.|
\| sessionName| GUID| ID exclusiva da sessão. Parte 3 do identificador da sessão.|

<a id="ID4EFC" />

## Códigos de status HTTP

O serviço retorna um código de status HTTP conforme aplicável ao MPSD.

<a id="ID4EOC" />

## Corpo da solicitação

Veja abaixo um exemplo de corpo de solicitação para criar ou ingressar em uma sessão. Os membros a seguir do corpo da solicitação são opcionais. Todos os outros membros possíveis são proibidos em uma solicitação.

\| Membro| Tipo| Descrição|
\| --- | --- | --- | --- | --- | --- | --- | --- |
\| constants| object| Configurações somente leitura que são mescladas com o modelo de sessão para produzir as constantes da sessão. |
\| properties | object | Alterações a serem mescladas nas propriedades da sessão.|
\| members.me | object| Constantes e propriedades que funcionam de forma muito semelhante às suas equivalentes de nível superior. Qualquer método PUT exige que o usuário seja membro da sessão e adiciona o usuário, se necessário. Se "me" for especificado como null, o membro que está fazendo a solicitação será removido da sessão. |
\| members | object| Outros objetos que representam usuários a serem adicionados à sessão, identificados por um índice baseado em zero. O número de membros em uma solicitação sempre começa com 0, mesmo que a sessão já contenha membros. Os membros são adicionados à sessão na ordem em que aparecem na solicitação. As propriedades de membro só podem ser definidas pelo usuário ao qual pertencem. |
\| servers | object| Valores que indicam atualizações e adições ao conjunto de participantes de servidor associados da sessão. Se um servidor for especificado como null, essa entrada de servidor será removida da sessão. |

```cpp theme={null}
{
  "properties": {
    "custom": {"KANWE": "MGMSY"},
    "system": {}
  },
  "constants": {
    "custom": {},
    "system": {"visibility": "open"}
  },
  "members": {
    "reserve_0": {
    "constants": {
      "custom": {"type": "leader"},
      "system": {"xuid": "5500461"} }}
   }
}

```

<a id="ID4E4C" />

## Corpo da resposta

Exemplo de corpo de resposta para criar ou ingressar em uma sessão:

```cpp theme={null}
{
  "contractVersion": 104,
  "correlationId": "0FE81338-EE96-46E3-A3B5-2DBBD6C41C3B",
  "nextTimer": "2009-06-15T13:45:30.0900000Z",

  "initializing": {
    "stage": "measuring",
    "stageStartTime": "2009-06-15T13:45:30.0900000Z",
    "episode": 1
  },

  "hostCandidates": [ "ab90a362", "99582e67" ],

  "constants": {
    "system": {"visibility": "open"},
    "custom": {}
  },

  "properties": {
     "system": { "turn": [] },
     "custom": { "myProperty": "myValue" }
  },

  "members": {
      "1": {
        "properties": {
        "system": { },
        "custom": { }
      },

      "constants": {
        "system": { "xuid": "5500461" },
        "custom": { }
      }

      "gamertag": "stacy",
      "deviceToken": "9f4032ba7",
      "reserved": true,
      "activeTitleId": "8397267",
      "joinTime": "2009-06-15T13:45:30.0900000Z",
      "turn": true,
      "initializationFailure": "latency",
      "initializationEpisode": 1,
      "next": 4
    },
  },

  "membersInfo": {
      "first": 1,
      "next": 4,
      "count": 1,
      "accepted": 0
  },

  "servers": {
      "name": {
        "constants": { },
        "properties": { }
      }
  }
}

```

<a id="ID4EID" />

## Confira também

<a id="ID4EKD" />

##### Pai

[/serviceconfigs/{scid}/sessiontemplates/{sessionTemplateName}/sessions/{sessionName}](/pt-BR/reference/live/rest/uri/sessiondirectory/uri-serviceconfigsscidsessiontemplatessessiontemplatenamesessionssessionname)


## Related topics

- [XblMultiplayerSessionReferenceUri](/zh-CN/reference/live/xsapi-c/multiplayer_c/structs/xblmultiplayersessionreferenceuri.md)
- [XblMultiplayerSessionReference](/reference/live/xsapi-c/multiplayer_c/structs/xblmultiplayersessionreference.md)
- [XblMultiplayerSessionReferenceCreate](/reference/live/xsapi-c/multiplayer_c/functions/xblmultiplayersessionreferencecreate.md)
