Árvore de páginas

Versões comparadas

Chave

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

...

A validação neste método acontece na declaração da procedure progress, na tag 'procedure', que neste caso é 'pi-get'.

Bloco de código
languagejavadelphi
    get:
      procedure: pi-get
      tags:
      - "pedido"
      summary: "Busca Dados dos pedidos existentes"
      description: "Busca os dados dos pedidos cadastrados na base de dados"
      operationId: "getPedido"     
      produces:
      - "application/json"
      parameters:
      - name: "status"
        in: "query"
        description: "Valores de status que precisam ser considerados para o filtro dos pedidos. Ex: available, pending e/ou sold"
        required: true
        type: "array"
        items:
          type: "string"
          enum:
          - "available"
          - "pending"          
          default: "available"
        collectionFormat: "multi"
      responses:
        200:
          description: "Operação executada com sucesso"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/payloadDeRetornoPedido"

...

No arquivo progress a procedure correspondente apresenta a efetivação da ação com os dados de entrada e retorno da requisição em um objeto JSON.

Bloco de código
languagejavaapplescript
PROCEDURE pi-get:

    DEF INPUT  PARAM jsonInput  AS JsonObject NO-UNDO.
    DEF OUTPUT PARAM jsonOutput AS JsonObject NO-UNDO.
    
    ASSIGN jsonOutput = jsonInput.
END.

...

No mesmo recurso "pedido", serão enviados os dados envelopados em um código JSON (sub seção consumes) e o mesmo será retornado na resposta da requisição (sub seção produces) como comprovação de que os dados foram gravados.

Bloco de código
languagejavadelphi
    post:
      tags:
      - "pedido"
      summary: "Cadastro de um novo pedido"
      description: "Envia dados de um novo cadastro de pedido para a base de dados utilizando o método POST"
      operationId: "addPedido"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - in: "body"
        name: "body"
        description: "Parâmetros necessários enviados no 'payload' para adicionar o novo pedido"
        required: true
        schema:
          $ref: "#/definitions/payloadEnvioPedido"
 

...

No arquivo progress a procedure correspondente, assim como no método GET, apresenta a efetivação da ação com os dados de entrada e retorno da requisição em um objeto JSON.

Bloco de código
languagejavaapplescript
PROCEDURE pi-post:


    DEF INPUT  PARAM jsonInput  AS JsonObject NO-UNDO.
    DEF OUTPUT PARAM jsonOutput AS JsonObject NO-UNDO.
    
    ASSIGN jsonOutput = jsonInput.
END.

...

Assim como o método POST, também encapsula os dados em um código JSON para atualzar os dados desejados (sub seção consumes), porém pode também informar essa atualização como parâmetros na URI.

Bloco de código
languagejavadelphi
    put:
      tags:
      - "pedido"
      summary: "Atualiza um registro existente de pedido"
      description: "Atualiza os dados de um registro de pedido existente na base de dados utilizando o método Put"
      operationId: "putPedido"
      consumes:
      - "application/json"      
      produces:
      - "application/json"
      parameters:
      - in: "body"
        name: "body"
        description: "Parâmetros necessários enviados no 'payload' para atualizar um pedido existente"
        required: true
        schema:
          $ref: "#/definitions/payloadEnvioPedido"
   **END SWAGGER** */          

...

No arquivo progress a procedure correspondente, assim como no método GET e POST, apresenta a efetivação da ação com os dados de entrada e retorno da requisição em um objeto JSON (sub seção produces).

Bloco de código
languagejavaapplescript
PROCEDURE pi-put:


    DEF INPUT  PARAM jsonInput  AS JsonObject NO-UNDO.
    DEF OUTPUT PARAM jsonOutput AS JsonObject NO-UNDO.
    
    ASSIGN jsonOutput = jsonInput.
END.

...

Como retorno, também apresenta um JSON contendo as informações do registro excluído na sub seção produces.

Bloco de código
languagejavadelphi
    delete:
      tags:
      - "pedido"
      summary: "Exclui um pedido existente"
      description: "Realiza a exlusão de um pedido existente na base de dados utilizando o método PUT"
      operationId: "deletePedido"
      produces:
      - "application/json"
      parameters:
      - name: "api_key"
        in: "header"
        required: false
        type: "string"
      - name: "pedidoId"
        in: "path"
        description: "Parâmetros necessários enviados no 'payload' para exlcuir um pedido existente"
        required: true
        type: "integer"
        format: "int64"

...

No arquivo progress a procedure correspondente, assim como nos métodos anteriores, apresenta a efetivação da ação com os dados de entrada e retorno da requisição em um objeto JSON.

Bloco de código
languagejavaapplescript
PROCEDURE pi-delete:


    DEF INPUT  PARAM jsonInput  AS JsonObject NO-UNDO.
    DEF OUTPUT PARAM jsonOutput AS JsonObject NO-UNDO.
    
    ASSIGN jsonOutput = jsonInput.
END.

...

Dentro de cada objeto foi estabelecido o tipo (sub seção type) e as propriedades (sub seção properties) pertinentes a cada um.

Bloco de código
languagejavadelphi
 definitions:
  payloadEnvioPedido:
    type: "object"
    required:
    - "numeroPedido"
    - "codigoCliente"
    properties:
      id:
        type: "integer"
        format: "int64"
      numeroPedido:
        type: "integer"
        example: "ped123456879"
        format: "int64"
      codigoCliente:
        type: "string"
        description: "cliente1234"
      descricaoCliente:
        type: "string"
        example: "Cliente de Teste"
  payloadDeRetornoPedido:
    type: "object"
    properties:
      id:
        type: "integer"
        format: "int64"
      numeroPedido:
        type: "integer"
        example: "ped123456879"
        format: "int64"
      statusDoPedido:
        type: "string"
        description: "Pedido Aprovado"
        enum:
        - "Aprovado"
        - "Reprovado"