Ana içeriğe geç

Create API Proxy Group

Endpoint

POST /apiops/projects/{projectName}/apiProxyGroups/

Authentication

Requires a Personal API Access Token.

Authorization: Bearer YOUR_TOKEN

Request

Headers

HeaderValueRequired
AuthorizationBearer {token}Yes
Content-Typeapplication/jsonYes

Path Parameters

ParameterTypeRequiredDescription
projectNamestringYesProject name

Request Body

Full JSON Body Example - Basic API Proxy Group

{
"name": "PaymentAPIGroup",
"description": "Payment API Group",
"clientRoute": {
"relativePathList": [
"/api/v1/payment"
],
"methodList": ["GET", "POST", "PUT", "DELETE"],
"hostList": null,
"headerList": null,
"bufferRequest": true,
"bufferResponse": true
}
}

Full JSON Body Example - API Proxy Group with Host Filtering

{
"name": "RestrictedAPIGroup",
"description": "Restricted API Group",
"clientRoute": {
"relativePathList": [
"/api/v1/restricted"
],
"methodList": ["GET", "POST"],
"hostList": [
"api.example.com",
"api-staging.example.com"
],
"headerList": null,
"bufferRequest": true,
"bufferResponse": true
}
}

Full JSON Body Example - API Proxy Group with Header-Based Routing

{
"name": "VersionedAPIGroup",
"description": "Versioned API Group",
"clientRoute": {
"relativePathList": [
"/api/v1"
],
"methodList": ["ALL"],
"hostList": null,
"headerList": [
{
"name": "X-API-Version",
"value": "v1"
}
],
"bufferRequest": true,
"bufferResponse": true
}
}

Request Body Fields

FieldTypeRequiredDefaultDescription
namestringYes-API Proxy Group name (unique identifier)
descriptionstringNo-API Proxy Group description
clientRouteobjectYes-Client route configuration. See Client Route Object
environmentNamestringNo-Environment name to deploy after creation. If provided, the API Proxy Group is automatically deployed to the specified environment

Client Route Object (clientRoute)

FieldTypeRequiredDefaultDescription
relativePathListarray[string]Yes-List of relative paths to match. Must have at least one path, and first path must not be empty
methodListarray[string]NonullList of HTTP methods to match. See EnumHttpRequestMethod
hostListarray[string]NonullList of host names to match
headerListarray[object]NonullList of headers to match. See Header Object
bufferRequestbooleanNotrueBuffer request body
bufferResponsebooleanNotrueBuffer response body

EnumHttpRequestMethod (methodList)

  • GET - HTTP GET method
  • POST - HTTP POST method
  • PUT - HTTP PUT method
  • HEAD - HTTP HEAD method
  • OPTIONS - HTTP OPTIONS method
  • DELETE - HTTP DELETE method
  • PATCH - HTTP PATCH method
  • TRACE - HTTP TRACE method
  • ALL - All HTTP methods

Header Object (headerList)

FieldTypeRequiredDescription
namestringYesHeader name (case-insensitive)
valuestringYesHeader value to match

Notes

  • name must be unique within the project
  • clientRoute.relativePathList must have at least one path
  • First path in relativePathList must not be empty
  • At least one route configuration (path, host, header, or method) must be provided
  • Paths must be at least 2 characters long

Response

Success Response (200 OK)

Without environmentName:

{
"success": true
}

With environmentName (includes deployment result):

{
"success": true,
"deploymentResult": {
"success": true,
"responseTime": 150,
"detailList": [
{
"envName": "production",
"podName": "worker-abc123",
"podIp": "10.0.0.1",
"success": true,
"responseTime": 150
}
]
}
}

Error Response (400 Bad Request)

{
"error": "bad_request",
"error_description": "name value can not be empty!"
}

or

{
"error": "bad_request",
"error_description": "clientRoute value can not be empty!"
}

or

{
"error": "bad_request",
"error_description": "clientRoute value needs at least one relativePath!"
}

or

{
"error": "bad_request",
"error_description": "relativePath value in clientRoute object can not be empty!"
}

or

{
"error": "bad_request",
"error_description": "ApiProxyGroup: (PaymentAPIGroup) is already created! If you want to udate it use update endpoint!"
}

Common Causes

  • Missing required fields (name, clientRoute)
  • Empty relativePathList or empty first path
  • API Proxy Group name already exists
  • Invalid client route configuration

cURL Example

Example 1: Create Basic API Proxy Group

curl -X POST \
"https://demo.apinizer.com/apiops/projects/MyProject/apiProxyGroups/" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "PaymentAPIGroup",
"description": "Payment API Group",
"clientRoute": {
"relativePathList": [
"/api/v1/payment"
],
"methodList": ["GET", "POST", "PUT", "DELETE"],
"bufferRequest": true,
"bufferResponse": true
}
}'

Example 2: Create API Proxy Group with Automatic Deployment

curl -X POST \
"https://demo.apinizer.com/apiops/projects/MyProject/apiProxyGroups/" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "PaymentAPIGroup",
"description": "Payment API Group",
"environmentName": "production",
"clientRoute": {
"relativePathList": [
"/api/v1/payment"
],
"methodList": ["GET", "POST", "PUT", "DELETE"],
"bufferRequest": true,
"bufferResponse": true
}
}'

Example 3: Create API Proxy Group with Host Filtering

curl -X POST \
"https://demo.apinizer.com/apiops/projects/MyProject/apiProxyGroups/" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "RestrictedAPIGroup",
"description": "Restricted API Group",
"clientRoute": {
"relativePathList": [
"/api/v1/restricted"
],
"methodList": ["GET", "POST"],
"hostList": [
"api.example.com"
],
"bufferRequest": true,
"bufferResponse": true
}
}'

Notes and Warnings

  • Name Uniqueness:

    • API Proxy Group name must be unique within the project
    • If name already exists, creation will fail
  • Client Route:

    • Client route is required
    • Must have at least one relative path
    • First path must not be empty
    • Paths must be at least 2 characters long
  • Route Matching:

    • Route matching uses AND logic
    • All specified conditions must match

Permissions

  • User must have API_MANAGEMENT + MANAGE permission in the project

  • If environmentName is provided, user must also have API_MANAGEMENT + DEPLOY_UNDEPLOY permission

  • Default Settings:

    • CORS settings, cache settings, and error templates are created with defaults
    • Can be configured after creation