API7 Docs
API7 GatewayAPI7 Enterprise Admin APIsParse custom plugin code

Parse custom plugin code

PUT /api/gateway_groups/{gateway_group_id}/custom_plugins/code/parse

PUT /api/gateway_groups/{gateway_group_id}/custom_plugins/code/parse

Interactive request editor loads with JavaScript.

Authorization

X-API-KEY<token>

In: header

Path Parameters

gateway_group_id*string

Gateway group ID.

Length1 <= length

Request Body

application/json

Response Body

application/json

curl -X PUT "$API_BASE_URL/api/gateway_groups/86fb9981-d9d2-4555-9df8-91ae92129335/custom_plugins/code/parse" \  -H "Content-Type: application/json" \  -d '{    "file": "bG9jYWwgY29yZSA9IHJlcXVpcmUoImFwaXNpeC5jb3JlIikKbG9jYWwgbmd4ID0gbmd4Cgpsb2NhbCBzY2hlbWEgPSB7CiAgICB0eXBlID0gIm9iamVjdCIKfQoKbG9jYWwgcGx1Z2luX25hbWUgPSAicm91dGUtaWQtcmVnaXN0ZXIiCgpsb2NhbCBfTSA9IHsKICB2ZXJzaW9uID0gMC4yLAogIHByaW9yaXR5ID0gMSwKICBuYW1lID0gcGx1Z2luX25hbWUsCiAgc2NoZW1hID0gc2NoZW1hLAogIHNjb3BlID0gImdsb2JhbCIsCn0KCmZ1bmN0aW9uIF9NLmNoZWNrX3NjaGVtYShjb25mKQogIHJldHVybiBjb3JlLnNjaGVtYS5jaGVjayhzY2hlbWEsIGNvbmYpOwplbmQKCmZ1bmN0aW9uIF9NLmxvZyhjb25mLCBjdHgpCiAgaWYgY3R4LnZhci5yb3V0ZV9pZCB0aGVuCiAgICBuZ3gudmFyLnJvdXRlX2lkID0gY3R4LnZhci5yb3V0ZV9pZAogIGVuZAplbmQKCnJldHVybiBfTQo="  }'

Successfully parsed the custom plugin code and extracted metadata.

{
  "value": {
    "name": "route-id-register",
    "version": "0.2",
    "catalog": "General",
    "description": "string",
    "documentation_link": "https://docs.api7.ai/hub/route-id-register",
    "author": "plugindev",
    "logo": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAH4SURBVHgBrVVLUhsxEH3SaBJSxJQWLLJKzAkClcqCVcINkhuYk6RygnCDkBOYI3iXTVKQE9ipggIGKKb42TAjNWrbY0+BkcY2b6ceqV/3688Ac6CrF+r/tfzmuyMxI25rL75klO+exDbFcxP0luItAjXbKteSsOe7qzAFWBJpbZOIVhNlkAkgyvHP96ZyBiyJMGaXnd8JQhJZgNBZSzGfRKS1LiRxR822dpwPPgq/PAyvRCzJnb1pukhXC9uZi5ylGfgPEzyZQbcWNwpJChtLcxyZ8WOaMYPua/XZRffzoT1xzq0Yn3vGX+B+EJOMr67yFkXZivO1XdjOnTRpROVr6XqKDmYh6JO4xy8vs00mMpJ2kpI0QwTl8RKUiZSlX+9yhcWSPqIiQaVBEyQ/Lbi2X7EK19LiULlOArWqvK00aC7wUSctWom3WcQZNH6/QT30VqACerX4HMMhY+yrfFxwgW3H9339aHLBgwQ8bG4e2sWZu+lAPSq4m0VsfDxF66E9KJE02Uge099Bj5ynzntjknNGuMgk3hd5JqU1McReluOrbx7CRRaynwGvCd5DIzOw5Vb1RmjYghkQdxCVNuhAks0PZ9hBBXgJSEPfGqoXPxdUkGQq8NK7WFL0Zxn0dxk/MAO8GQhX4E6cTSXJVAQnsdHXBmvzSHIP3R3bZScnj8UAAAAASUVORK5CYII="
  }
}
Complete operation details and schema variants

PUT /api/gateway_groups/{gateway_group_id}/custom_plugins/code/parse

Parse custom plugin code

Parse and validate custom plugin source payload to extract plugin metadata and detect structural issues before uploading a plugin.

Required IAM Permission: Action gateway:UpdateCustomPlugin, Resource arn:api7:gateway:gatewaygroup/{gateway_group_id}

Parameters

  • gateway_group_id (path, string, required): Gateway group ID.

Request body

Content type: application/json

  • file (string, required): Base64-encoded ZIP archive that contains the plugin package. The archive includes the plugin code and the plugin metadata. A plugin that has dependency files holds $PLUGIN_NAME.lua alongside a $PLUGIN_NAME directory of Lua files.

Responses

  • 200: Successfully parsed the custom plugin code and extracted metadata.
  • allOf variant 1
  • value (object, optional): The specific resource.
  • allOf variant 2
  • value (object, optional):
  • value.name (string, optional): The name of the plugin.
  • value.version (string, optional): The version of the plugin.
  • value.catalog (string, optional): Plugin category, such as "Traffic" or "Observability".
  • value.description (string, optional): A brief description of the plugin.
  • value.documentation_link (string, optional): Link to the plugin's documentation.
  • value.author (string, optional): Author of the plugin.
  • value.logo (string, optional): The base64-encoded logo image.
  • 400: Invalid arguments. Error details will be provided in the response.

cURL

curl -X PUT '$API_BASE_URL/api/gateway_groups/{gateway_group_id}/custom_plugins/code/parse'