Versões comparadas

Chave

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

...

Para descrever uma API, se faz necessária uma especificação padronizada. O padrão utilizado para a construção das APIs TOTVS é o OpenAPI 3.0, o qual descreve um formato para definição de toda a API. Essa especificação é que define como serão evidenciados os endpoints e seus métodos, parâmetros de operações de entrada e saída, métodos de autenticação, metadados (tais como informações gerais, contato, licença e termos de uso), entre outros.

3.2 Criação de uma API

As Nesta documentação não entraremos em muitos detalhes sobre a criação dos OpenAPIs, uma vez que as regras para o desenvolvimento de novos arquivos OpenAPIs APIs já estão especificadas no nosso Guia de Implementação de APIs.

Explicaremos mais o x-totvs. Mais detalhes sobre construção de APIs podem ser encontrados em Implementação de APIs com Mensagem Padronizada#Defini%C3%A7%C3%A3odaAPIeseusEndpoints

Todas as APIs já desenvolvidas podem ser encontradas em nosso repositório do Uma ótima maneira de iniciar a criação de um novo arquivo OpenAPI é observando como outros documentos foram construídos. Para ter acesso a todas as APIs já desenvolvidas, basta acessar nosso repositório no GitHub.

3.2.1 totvsApiTypesBase

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.

...

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"

								}

							}

						}

					}


(...)

...

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 typesparameters!


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

...