Contact Us 1-800-596-4880

Managing Flows in a Server Using REST APIs

The management console provides REST APIs that you can use to programmatically access much of the console’s functionality. Among the operations that you can request with the REST APIs are operations related to managing flows in a servee. This includes finding flows in server, as well as starting and stopping a flow’s endpoints.

See Using the Management Console APIs for an overview of the REST APIs, including a basic example of use, and a summary of returned status codes and error handling codes.

This page provides a brief description of each REST API for managing flows in a server, an HTTP method to invoke the API, and a usage example. The examples show how to invoke the API using cURL, the command line HTTP tool.

Note: The notation \{mmc base} refers to the console base address. The console base address used in the examples is http://localhost:8080/mmc and configured with the default username and password (admin:admin).

The table below summarizes the REST APIs for managing deployments:

Task Resource Description HTTP Invocation Method

Get Flows

\{mmc base}/api/servers/<serverId>/flows

Lists all flows in a server

GET

Get Flow Endpoints

\{mmc base}/api/servers/<serverId>/flows/<flowName>/<application>/endpoints

Lists all endpoints for a flow

GET

Start or Stop Endpoints

\{mmc base}/api/servers/<serverId>/flows/<flowName>/<applicationName>/endpoints/<endpointId>/start (or stop)

Starts (or stops) an endpoint for a flow

POST

Start or Stop a Flow

\{mmc base}/api/servers/<serverId>/flows/<flowName>/<applicationName>/start (or stop)

Starts or stops a flow

POST

All examples on this page use the server and data as shown below:

{
    "data": [
        {
            "agentUrl": "https://localhost:7777/mmc-support",
            "agents": [
                {
                    "description": "Mule ESB Enterprise Support (0.0.0.0:7777)",
                    "name": "mmc-support"
                },
                {
                    "description": "Clustering Agent",
                    "name": "_muleClusterSupportAgent"
                },
                {
                    "description": "JMX Agent",
                    "name": "jmx-agent"
                }
            ],
            "groups": [],
            "hostIp": "192.168.1.116",
            "href": "http://localhost:8585/mmc/api/servers/local$a6064a19-6bd9-477f-be68-5a7b83e8bd7f",
            "id": "local$a6064a19-6bd9-477f-be68-5a7b83e8bd7f",
            "muleServerId": "00_mmc-agent",
            "name": "Mule3.2",
            "pausedServices": 0,
            "runningServices": 4,
            "started": "Thu Sep 01 12:06:33 GMT-03:00 2011",
            "status": "OK",
            "stoppedServices": 0,
            "version": "3.2.0-RC3"
        }
    ],
    "total": 1
}

Get Flows

Lists all the flows in a server.

HTTP Method:

GET

URL:

http://{mmc base}/api/servers/{serverId}/flows

Parameters:

serverId: The ID of the server from which the flows are listed.

Example:

The following example shows how to list the flows for a server with an ID of local$a6064a19-6bd9-477f-be68-5a7b83e8bd7f:

Request:

l --basic -u admin:admin http://localhost:8080/mmc/api/servers/'local$a6064a19-6bd9-477f-be68-5a7b83e8bd7f'/flows

JSON Response:

{
    "data": [
        {
            "asyncEventsReceived": 0,
            "auditStatus": "DISABLED",
            "averageProcessingTime": 0,
            "executionErrors": 0,
            "fatalErrors": 0,
            "favorite": false,
            "flowId": {
                "application": "test-app",
                "definedInApplication": true,
                "fullName": "EchoFlow [test-app]",
                "name": "EchoFlow"
            },
            "id": "local$a6064a19-6bd9-477f-be68-5a7b83e8bd7f/EchoFlow",
            "inboundEndpoints": [
                "http://localhost:65082/services/EchoUMO"
            ],
            "maxProcessingTime": 0,
            "minProcessingTime": 0,
            "processedEvents": 0,
            "serverId": "local$a6064a19-6bd9-477f-be68-5a7b83e8bd7f",
            "status": "RUNNING",
            "syncEventsReceived": 0,
            "totalEventsReceived": 0,
            "totalProcessingTime": 0,
            "type": "flow"
        }
    ],
    "total": 1
}

Get Flow Endpoints

Lists all endpoints on a flow.

HTTP Method:

GET

URL:

http://{mmc base}/api/servers/{serverId}/flows

Parameters:

  • serverId: The ID of the server.

  • applicationName: The application name of the flow.

  • flowName: The name of the flow.

Example:

The following example shows how to list the endpoints in a flow named EchoFlow, whose application name is test-app, in the server whose ID is local$a6064a19-6bd9-477f-be68-5a7b83e8bd7f:

Request:

curl --basic -u admin:admin http://localhost:8080/mmc/api/servers/'local$a6064a19-6bd9-477f-be68-5a7b83e8bd7f'/flows/EchoFlow/test-app/endpoints

JSON Response

{
    "data": [
        {
            "address": "http://localhost:65082/services/EchoUMO",
            "connector": "connector.http.mule.default",
            "filtered": false,
            "id": "endpoint.http.localhost.65082.services.EchoUMO",
            "routedMessages": 0,
            "status": "started",
            "synchronous": true,
            "tx": false,
            "type": "http"
        }
    ],
    "total": 1
}

Start/Stop Endpoints

Start or Stop an endpoint for a specified flow.

HTTP Method:

POST

URL:

Start:

http://{mmc base}/servers/{serverId}/flows/{flowName}/{applicationName}/endpoints/{endpointId}/start

Stop:

http://{mmc base}/servers/{serverId}/flows/{flowName}/{applicationName}/endpoints/{endpointId}/stop

Parameters:

  • serverId: The ID of the server.

  • applicationName: The application name of the flow.

  • flowName: The name of the flow.

  • endpointId: The name of an endpoint to be started or stopped.

Example:

Request:

Start an endpoint:

curl --basic -u admin:admin -X POST http://localhost:8080/mmc/api/servers/'local$a6064a19-6bd9-477f-be68-5a7b83e8bd7f'/flows/EchoFlow/test-app/endpoints/endpoint.http.localhost.65082.services.EchoUMO/start

Stop an endpoint:

4a19-6bd9-477f-be68-5a7b83e8bd7f'/flows/EchoFlow/test-app/endpoints/endpoint.http.localhost.65082.services.EchoUMO/stop

JSON Response:

A list of endpoints that have been started/stopped successfully.

["endpoint.http.localhost.65082.services.EchoUMO"]

Start/Stop a Flow

Starts or stops a flow in a server.

HTTP Method:

POST

URL:

Start:

http://{mmc base}/api/servers/{serverId}/flows/{flowName}/{applicationName}/start

Stop:

http://{mmc base}/api/servers/{serverId}/flows/{flowName}/{applicationName}/stop

Parameters:

  • serverId: The ID of the server.

  • applicationName: The application name of the flow.

  • flowName: The name of the flow.

Example:

Request:

Start a flow:

curl --basic -u admin:admin -X POST http://localhost:8080/mmc/api/servers/'local$a6064a19-6bd9-477f-be68-5a7b83e8bd7f'/flows/EchoFlow/test-app/start

Stop a flow:

curl --basic -u admin:admin -X POST http://localhost:8080/mmc/api/servers/'local$a6064a19-6bd9-477f-be68-5a7b83e8bd7f'/flows/EchoFlow/test-app/stop

Response:

The flow started or stopped successfully