SAP Integration Suite · Arazzo Workflow

SAP Integration Suite Publish API Product

Version 1.0.0

Create an API proxy, confirm it, then bundle it into a published API product with a quota.

1 workflow 1 source API 1 provider
View Spec View on GitHub API ManagementCloud IntegrationEnterprise IntegrationEvent MeshiPaaSSAPSAP BTPArazzoWorkflows

Provider

sap-integration-suite

Workflows

publish-api-product
Create an API proxy and bundle it into a published API product.
Creates an API proxy against a backend endpoint, verifies it, then creates and verifies an API product that bundles the new proxy.
4 steps inputs: basePath, productName, productTitle, proxyName, proxyTitle, targetEndpoint outputs: bundledProxies, createdProxyName, productStatus
1
createProxy
createAPIProxy
Create a new API proxy that routes to the supplied backend target endpoint.
2
confirmProxy
getAPIProxy
Read the new proxy back to confirm it was created and capture its deploy state.
3
createProduct
createAPIProduct
Create an API product that bundles the newly created proxy for portal discovery.
4
confirmProduct
getAPIProduct
Read the API product back to confirm it bundles the proxy.

Source API Descriptions

Arazzo Workflow Specification

sap-integration-suite-publish-api-product-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: SAP Integration Suite Publish API Product
  summary: Create an API proxy, confirm it, then bundle it into a published API product with a quota.
  description: >-
    The API Management publishing loop. The workflow creates a new API proxy
    pointing at a backend target endpoint, reads the proxy back to confirm it
    landed, and then creates an API product that bundles the proxy so it can be
    discovered and subscribed to in the developer portal. The product is read
    back to confirm its details. Every step spells out its request inline so the
    flow can be read and executed without opening the underlying OpenAPI
    description.
  version: 1.0.0
sourceDescriptions:
- name: apiManagementApi
  url: ../openapi/sap-integration-suite-api-management-openapi.yml
  type: openapi
workflows:
- workflowId: publish-api-product
  summary: Create an API proxy and bundle it into a published API product.
  description: >-
    Creates an API proxy against a backend endpoint, verifies it, then creates
    and verifies an API product that bundles the new proxy.
  inputs:
    type: object
    required:
    - proxyName
    - targetEndpoint
    - productName
    properties:
      proxyName:
        type: string
        description: Unique name for the new API proxy.
      proxyTitle:
        type: string
        description: Display title for the API proxy.
      basePath:
        type: string
        description: Base path the proxy is served on (e.g. /v1/orders).
      targetEndpoint:
        type: string
        description: Backend target endpoint URL the proxy routes to.
      productName:
        type: string
        description: Unique name for the API product that bundles the proxy.
      productTitle:
        type: string
        description: Display title for the API product.
  steps:
  - stepId: createProxy
    description: Create a new API proxy that routes to the supplied backend target endpoint.
    operationId: createAPIProxy
    requestBody:
      contentType: application/json
      payload:
        name: $inputs.proxyName
        title: $inputs.proxyTitle
        basePath: $inputs.basePath
        targetEndpoint: $inputs.targetEndpoint
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      createdProxyName: $response.body#/d/name
  - stepId: confirmProxy
    description: Read the new proxy back to confirm it was created and capture its deploy state.
    operationId: getAPIProxy
    parameters:
    - name: name
      in: path
      value: $inputs.proxyName
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      isDeployed: $response.body#/d/isDeployed
      basePath: $response.body#/d/basePath
  - stepId: createProduct
    description: Create an API product that bundles the newly created proxy for portal discovery.
    operationId: createAPIProduct
    requestBody:
      contentType: application/json
      payload:
        name: $inputs.productName
        title: $inputs.productTitle
        apiProxies:
        - $inputs.proxyName
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      productCreateStatus: $statusCode
  - stepId: confirmProduct
    description: Read the API product back to confirm it bundles the proxy.
    operationId: getAPIProduct
    parameters:
    - name: name
      in: path
      value: $inputs.productName
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      productStatus: $response.body#/d/status
      bundledProxies: $response.body#/d/apiProxies
  outputs:
    createdProxyName: $steps.createProxy.outputs.createdProxyName
    productStatus: $steps.confirmProduct.outputs.productStatus
    bundledProxies: $steps.confirmProduct.outputs.bundledProxies