Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Adicionando os conceitos de domain

...

A propriedade x-totvs nas APIs está localizada tanto no cabeçalho (tag info) quanto nos métodos dos paths (endpoints) no arquivo OpenAPI, contendo informações diferentes dependendo do local em que está inserida. Contudo, as propriedades x-totvs tem sempre um objetivo em comum: armazenar dados pertinentes aos produtos TOTVS. São nas x-totvs em que são especificadas informações como o nome do produto ao qual se refere, segmento e domínio ao qual está vinculado, adapter atrelado, se determinado verbo está disponível para aquele caminho, entre outros.

...

  • x-totvs dentro da "info"
    Âncora
    xtotvs-info
    xtotvs-info

    O exemplo a seguir é um trecho da API UnitOfMeasure v2.API StockGroup

    Bloco de código
    languagejs
    titleExemplo
    collapsetrue
    (...)
    "info": {
    		"description": "API para informações de UnidadeGrupo de MedidaProduto para Unidade deProdutos Medida TOTVS",
    		"version": "21.000",
    		"title": "UnitOfMeasureGrupo de Produto",
    		"contact": {
    			"name": "T-Talk",
    			"url": "api.totvs.com.br",
    			"email": "[email protected]"
    		},
    		"x-totvs": {
    			"messageDocumentation": {
    				"name": "UnitOfMeasureStockGroup",
    				                "description": "Cadastro de UnidadeGrupo de MedidaProduto",
                    "segment": "Construção e Projetos",
    				"segmentdomain": "ServiçosPlanejamento"
    			},
    			"productInformation": [
    				{
    					"product": "Protheus",
    					"contact": "[email protected]",
    					"description": "CadastroGrupo de Unidade de MedidaProduto",
    					"adapter": "QIES030MATS035.prw"
    				},
    				{
    					"product": "Logix",
    					"contact": "[email protected]",
    					"description": "Cadastro de UnidadeGrupo de MedidaProduto",
    					"adapter": ""
    				}
    			]
    		}
    	}
    (...)
    

    A propriedade "messageDocumentation" do x-totvs traz informações sobre a própria API.

      • name: título da API;
      • description: descrição da API;
      • segment: segmento da TOTVS pelo qual aquela API foi implementada.
      • domain: domínio de negócio à qual os recursos pertencem.

    Já a propriedade "productInformation" traz informações sobre os produtos TOTVS.

...

  • x-totvs dentro dos verbos dos endpoints 
    Âncora
    xtotvs-paths
    xtotvs-paths

    O exemplo a seguir também é é um trecho da API UnitOfMeasure v2.

    Bloco de código
    languagejs
    titleExemplo
    collapsetrue
    (...)
    "paths": {
    		"/UnitOfMeasures": {
    			"get": {
    				"tags": [
    					"UnitOfMeasures"
    				],
    				"summary": "Retorna lista de Unidade de Medida",
    				"x-totvs": {
    					"productInformation": [
    						{
    							"product": "Protheus",
    							"available": true,
    							"note": "Este verbo esta disponivel com todos os parametros",
    							"minimalVersion": "12.1.21"
    						},
    						{
    							"product": "Logix",
    							"available": true,
    							"note": "Este verbo esta disponivel com todos os parametros",
    							"minimalVersion": "12.1.23"
    						}
    					]
    				}
    (...)

    Diferentemente do x-totvs da "info",  a propriedade "messageDocumentation" não está presente nos x-totvs dos "paths".

    Já a propriedade "productInformation" traz informações sobre os produtos TOTVS.

    • product: produto ao qual aquelas informações do "productInformation" se referem;
    • available: campo booleano que indicia de o verbo esta implementado no produto;
    • note: observações sobre o verbo referente ao produto, como regras específicas;
    • minimalVersion: a versão minima na qual o verbo foi implementado no produto.

...

Bloco de código
languagejs
titleExemplo
collapsetrue
(...)
"info": {
		"description": "API para informações de UnidadeGrupo de MedidaProduto para Unidade de MedidaProdutos TOTVS",
		"version": "21.000",
		"title": "UnitOfMeasureGrupo de Produto",
		"contact": {
			"name": "T-Talk",
			"url": "api.totvs.com.br",
			"email": "[email protected]"
		},
		"x-totvs": {
			"messageDocumentation": {
				"name": "UnitOfMeasureStockGroup",
				                "description": "Cadastro de UnidadeGrupo de Medida Produto",
                "segment": "Construção e Projetos",
				"segmentdomain": "ServiçosPlanejamento"
			},
			"productInformation": [
				{
					"product": "Protheus",
					"contact": "[email protected]",
					"description": "CadastroGrupo de Unidade de MedidaProduto",
					"adapter": "QIES030MATS035.prw"
				},
				{
					"product": "Logix",
					"contact": "[email protected]",
					"description": "Cadastro de UnidadeGrupo de MedidaProduto",
					"adapter": ""
				},
				{
					"product": "NovoProdutoTOTVS",
					"contact": "[email protected]",
					"description": "Cadastro de UnidadeGrupo de MedidaProduto para NovoProdutoTOTVS",
					"adapter": "modeloDoAdpter"
				}
			]
		}
	}
(...)

...