Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Mais informações sobre multicontent

...

Aviso
titleAtenção

Após a reorganização da API pode ser necessário excluir a versão anterior e neste caso, a depreciação deve ser feita conforme politica de cada linha de produto.

Tipos de Conteúdo 
Âncora
tipos-conteudo
tipos-conteudo

JSON 
Âncora
conteudo-json
conteudo-json

O formato padrão e recomendado de tipo de conteúdo, ou "Content-Type", a ser trafegado via APIs é "application/json".

É representado da seguinte maneira:



Bloco de código
languagejs
"content": {
				"application/json": {
						"schema": {
								"$ref": "https://raw.githubusercontent.com/totvs/ttalk-standard-message/master/jsonschema/schemas/SomeJsonSchema_2_006.json#/definitions/SomeObject"
						}
				}
			}




XML 
Âncora
conteudo-xml
conteudo-xml

Em alguns casos pode existir a necessidade de utilizar "application/xml" , por ex: quando é exigido por legislação.  Nessa situação, as mesmas regras definidas nos tópicos anteriores continuam valendo, visto que estas estão relacionadas ao schema. (Se possível, evitar esse uso e sempre priorizar o JSON).

É representado de maneira muito similar ao JSON, porém trocando a notação do ContentType por "application/xml".

Bloco de código
languagejs
"content": {
				"application/xml": {
						"schema": {
								"$ref": "https://raw.githubusercontent.com/totvs/ttalk-standard-message/master/jsonschema/schemas/SomeJsonSchema_2_006.json#/definitions/SomeObject"
						}
				}
			}

Arquivos Binários 
Âncora
conteudo-binario
conteudo-binario

Para endpoints de arquivos binários, é obrigatório que o schema siga a seguinte estrutura (Com "type": "string" e "format":"binary") (https://swagger.io/docs/specification/describing-request-body/file-upload/)

A notação do ContentType é sempre referente ao tipo de arquivo que o mesmo lida. No exemplo abaixo, um endpoint que resolve um arquivo de extensão ".png":

Bloco de código
languagejs
"content": {
				"image/png": {
						"schema": {
								"type":"string",
								"format": "binary"
						}
				}
			}