apic-cli 0.2.2

A lightweight, Git-friendly CLI tool for designing and collaborating on API contracts
{
    "name": "endpoint-name",
    "description": "Short description of what this endpoint does",
    "method": "POST",
    "url": {
        "protocol": "https",
        "host": "api.example.com",
        "path": ["resource", "{id}", "action"],
        "query": [
            {
                "name": "page",
                "value": "1",
                "description": "Page number",
                "required": false
            }
        ],
        "variable": [
            {
                "name": "id",
                "type": "string",
                "description": "Resource identifier"
            }
        ]
    },
    "headers": [
        {
            "name": "Content-Type",
            "value": "application/json"
        },
        {
            "name": "Authorization",
            "value": "Bearer {token}"
        }
    ],
    "request": {
        "schema": [
            {
                "name": "field_name",
                "type": "string",
                "default": null,
                "description": "A request body field",
                "required": true,
                "accept": null
            }
        ],
        "example": {
            "field_name": "value"
        }
    },
    "responses": [
        {
            "code": 200,
            "description": "Successful response",
            "example": {
                "status": 200,
                "message": "OK",
                "data": {
                    "nested_field": "value"
                }
            },
            "schema": [
                {
                    "name": "status",
                    "type": "int",
                    "default": "200",
                    "description": "Status code",
                    "required": true,
                    "properties": null
                },
                {
                    "name": "message",
                    "type": "string",
                    "default": null,
                    "description": "Human-readable message",
                    "required": true,
                    "properties": null
                },
                {
                    "name": "data",
                    "type": "object",
                    "default": null,
                    "description": "Response payload",
                    "required": false,
                    "properties": [
                        {
                            "name": "nested_field",
                            "type": "string",
                            "default": null,
                            "description": "A nested field inside data",
                            "required": true,
                            "properties": null
                        }
                    ]
                }
            ]
        },
        {
            "code": 400,
            "description": "Bad request",
            "schema": [
                {
                    "name": "status",
                    "type": "int",
                    "default": "400",
                    "description": "Status code",
                    "required": true,
                    "properties": null
                },
                {
                    "name": "message",
                    "type": "string",
                    "default": null,
                    "description": "Error message",
                    "required": true,
                    "properties": null
                }
            ]
        }
    ]
}