DevOps Pipeline Task Name: FaUAPI-Publish-Api

This FaUAPI DevOps pipeline task will publish an API after the API configured and created.

The required inputs for this pipeline task are outlined in the table below: | Input Name | Required? | Type | Description | Default Value | | --------------- | ------------------------------ | ----------------------------------------------------------------------------------- |------------------- |------------------ | | AutomationToken | Required | String | Workspace automation token. This is obtained by following the steps in Adding a workspace automation token. | - | FaUAPIInstance | Required | String | Instance which the API is to be configured. Valid value string are ('DEV', 'Test', 'PREPROD', 'PROD'). | - ApiID | Required | String | Codename for the API. | - PreviewModeOnly | Required | String | Boolean. Specifies if the API detail is to be presented in preview only without being published. The detail will be in JSON format. Valid values (true, false). You can have two sets of inputs for a pipeline where PreviewModeOnly is set as 'false' and then set to 'true' for the subsequent set. In that case, the a preview will be displayed and then the API is published. | - |

Now, let's look at an example of publishing an API using FaUAPI DevOps pipeline tasks.

Example:

To publish an API using FaUAPI DevOps pipeline task:

  1. Go to DfE Azure DevOps URL.
  2. Sign in to DfE Azure DevOps.
  3. Go to the Solutions Development project.
  4. Select Pipelines from the left sidebar tab options. This will show you the Pipeline page with search.
  5. Type the word or phrase for the pipeline task you want to create into the search box.
  6. Select the relevant FaUAPI DevOps pipeline task from the search result. This will show you the pipeline task creation page.
  7. Select the relevant environment from the FaUAPI instance radio options (Development, Test, Pre-Production, Production).

Development and Test instanes are for use by the FaUAPI development and support team only. 8. Enter an API codename into the Api ID textbox. 9. Select the Preview mode checkbox to indicate if the API should be presented in preview mode only without being published. 10. Enter your automation token into the Automation Token textbox. It is recommended as best practice to use the automation token variable $(AUTOMATION-TOKEN). So, assign the value of the automation token to this variable. You can generate an automation token by following the steps described in Adding a workspace automation token. 11. Select the Add button. This will save the details. 12. Select the Run button to run your pipeline.

Sample Pipeline YAML file (API only) In the sample pipeline file, you

variables:
 - group: "EXAMPLE-VARIABLE-GROUP"
      
steps:
- task: FaUAPI-Configure-API@1
  inputs:
    AutomationToken: "$(AUTOMATION-TOKEN)"
    FaUAPIInstance: "$(TARGET-INSTANCE)"
    ApiDefinition: "json/api.json"
- task: FaUAPI-Publish-API@1
  inputs:
    AutomationToken: "$(AUTOMATION-TOKEN)"
    FaUAPIInstance: "$(TARGET-INSTANCE)"
    ApiName: "$(API_NAME)"

Sample API definition file (JSON)

{
  "backendType": "http",
  "classification": "Across government services",
  "description": "This is an example description of sufficient length",
  "displayName": "Example API",
  "isHosted": true,
  "majorVersion": "1",
  "name": "example-api",
  "overview": "This is an example overview. You need this in order to publish.",
  "versionScheme": "UrlSuffix",
  "visibility": "Private",
  "schema": {
      "description": "This is an example API schema",
      "fileName": "schema.json",
      "name": "schema.json",
      "type": "schema",
      "schemaType": "openapi",
      "DefinitionFilePath": "json/schema.json"
  },
  "authentications":[
    {
      "autoEnforce": true,
      "enabled": true,
      "parameters": {
        "HeaderName": "Ocp-Apim-Subscription-Key",
        "QueryName": "Subscription-Key"
      },
      "type": "SubscriptionKey"
    }
  ],
  "environments": [
    {
      "backendMode": "Explicit",
      "backendUrl": "http://www.example.com/",
      "canSubscribe": true,
      "enabled": true,
      "name": "live",
      "requiresApproval": false,
      "visibility": "Inherit"
    }
  ],
  "releases": [
    {
      "availableFrom": "2025-09-01",
      "availableTo": "2025-12-30",
      "isCurrent": true,
      "name": "1.0",
      "notes": "Example release notes\r\nThis can contain *markdown*",
      "tag": "Live"
    }
  ]
}

Sample schema file (JSON)

{
    "openapi": "3.0.1",
    "info": {
      "title": "Api Example",
      "version": "v1"
    },
    "servers": [
      {
        "url": "https://example-api.platform.education.gov.uk/v1"
      }
    ],
    "paths": {
      "/api/linked-test": {
        "post": {
          "tags": [
            "example_post"
          ],
          "summary": "Run",
          "operationId": "Run",
          "responses": {
            "200": {
              "description": "Success"
            }
          }
        }
      },
      "/api/example-get": {
        "get": {
          "tags": [
            "example_get"
          ],
          "summary": "Dog",
          "operationId": "Dog",
          "responses": {
            "200": {
              "description": "Success"
            }
          }
        }
      }
    },
    "components": {
      "securitySchemes": {
        "apiKeyHeader": {
          "type": "apiKey",
          "name": "Ocp-Apim-Subscription-Key",
          "in": "header"
        },
        "apiKeyQuery": {
          "type": "apiKey",
          "name": "subscription-key",
          "in": "query"
        }
      }
    },
    "security": [
      {
        "apiKeyHeader": [ ]
      },
      {
        "apiKeyQuery": [ ]
      }
    ]
  }

Sample FaUAPI DevOps Pipeline task success message



Sample FaUAPI DevOps Pipeline task error message