Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Ao criar uma especificação de API TOTVS, é preciso ter em mente que existem alguns types e parameters padronizados previamente criados pela TTALK, armazenados no arquivo totvsApiTypesBase.jsonCom isso, esses parameters não precisam ser implementados nos endpoints, mas sim propriamente referenciados na própria especificação de API.

O exemplo a seguir traz um trecho da API do arquivo OpenAPI CustomerVendor v1, mostrando como é feita ocorre essa referenciação.

Bloco de código
languagejs
titleExemplo
collapsetrue
	(...)


	"paths": {

		"/customerVendor": {

			"get": {

				"tags": [

					"customerVendor"

				],

				"summary": "Retorna todos Clientes/Fornecedores",

				"x-totvs": {

					"productInformation": [

						{

							"product": "Protheus",

							"available": true,

							"note": "Este verbo não está diponível no protheus. Utilize a consulta CustomerVendorEntity",

							"minimalVersion": "12.1.21"

						}

					]

				},

				"description": "Retorna todos clientes e/ou fornecedores",

				"operationId": "getcustomerVendor",

				"parameters": [

					{

						"$ref": "https://raw.githubusercontent.com/totvs/ttalk-standard-message/master/jsonschema/apis/types/totvsApiTypesBase.json#/parameters/Authorization"

					},

					{

						"$ref": "https://raw.githubusercontent.com/totvs/ttalk-standard-message/master/jsonschema/apis/types/totvsApiTypesBase.json#/parameters/Fields"

					},

					{

						"$ref": "https://raw.githubusercontent.com/totvs/ttalk-standard-message/master/jsonschema/apis/types/totvsApiTypesBase.json#/parameters/Order"

					},

					{

						"$ref": "https://raw.githubusercontent.com/totvs/ttalk-standard-message/master/jsonschema/apis/types/totvsApiTypesBase.json#/parameters/Page"

					},

					{

						"$ref": "https://raw.githubusercontent.com/totvs/ttalk-standard-message/master/jsonschema/apis/types/totvsApiTypesBase.json#/parameters/PageSize"

					}

				],

				"responses": {

					"200": {

						"description": "Operação realizada com sucesso",

						"content": {

							"application/json": {

								"schema": {

									"$ref": "https://raw.githubusercontent.com/totvs/ttalk-standard-message/master/jsonschema/schemas/CustomerVendor_2_006.json#/definitions/PagedCustomerVendors"

								}

							}

						}

					},

					"400": {

						"description": "Erro na requisição!",

						"content": {

							"application/json": {

								"schema": {

									"$ref": "https://raw.githubusercontent.com/totvs/ttalk-standard-message/master/jsonschema/apis/types/totvsApiTypesBase.json#/definitions/ErrorModel"

								}

							}

						}

					}


(...)

Aviso

Ao referenciar qualquer arquivo do GitHub, tenha certeza que está obtendo o link apenas com o JSON e não o da árvore de arquivos. Para isso, ao entrar na página do arquivo desejado, clique em "Raw" e só então copie o link da página com o arquivo JSON.

Para maiores informações sobre uso dos cabeçalhos padronizados, visite nosso Guia de APIs. 

Sinta-se à vontade para navegar por nossas APIs, tanto pelo API Reference quanto pelo nosso repositório do GitHub, e observar como estão referenciados seus respectivos parameters!


(informação) Retornar ao Fluxograma de Criação de Integrações

...

Anteriormente era possível que o schema fosse incluso diretamente na API, porém essa regra foi modificada. Para aprimorar a reusabilidade dos schemas, agora os arquivos JSON devem ser separados em API e JsonSchema. Esse modelo possibilita a utilização do protocolo transactions sem que haja a necessidade do desenvolvimento de uma API, caso essa configuração seja suficiente para suprir a necessidade e interesse do desenvolvedor.  Como vantagem adicional, uma mesma API pode ser utilizada de formas diferentes, alterando somente o schema o qual ela faz referência.

Para uma melhor apresentação visual das APIs, foi criado o portal API Reference, onde todas as APIs desenvolvidas pelos segmentos TOTVS e aprovadas pelo comitê podem ser encontradas.

3.4 A propriedade "x-totvs"

...