@if (data.mode === 'create') { Create New API } @else if (data.mode === 'duplicate') { Duplicate API } @else if (data.mode === 'test') { Test API: {{ data.api.name }} } @else { Edit API: {{ data.api.name }} }

Name Unique identifier for this API @if (form.get('name')?.hasError('required') && form.get('name')?.touched) { Name is required } @if (form.get('name')?.hasError('pattern') && form.get('name')?.touched) { Only alphanumeric and underscore allowed } URL Full URL including protocol @if (form.get('url')?.hasError('required') && form.get('url')?.touched) { URL is required } @if (form.get('url')?.hasError('pattern') && form.get('url')?.touched) { Invalid URL format }
Method @for (method of httpMethods; track method) { {{ method }} } Timeout (seconds) Request timeout in seconds @if (form.get('timeout_seconds')?.hasError('min')) { Minimum 1 second } @if (form.get('timeout_seconds')?.hasError('max')) { Maximum 300 seconds }
Proxy URL (Optional) HTTP proxy for this API call

Request Headers

@if (headers.length === 0) {

No headers configured. Click "Add Header" to add one.

} @for (header of headers.controls; track header; let i = $index) {
Header Name Header Value @for (variable of getTemplateVariables(); track variable) { }
}
Enable Authentication @if (form.get('auth.enabled')?.value) {

Token Configuration

Token Endpoint URL to obtain authentication token @if (form.get('auth.token_endpoint')?.hasError('required') && form.get('auth.token_endpoint')?.touched) { Token endpoint is required when auth is enabled } Token Response Path JSON path to extract token from response @if (form.get('auth.response_token_path')?.hasError('required') && form.get('auth.response_token_path')?.touched) { Token path is required when auth is enabled }

Token Refresh (Optional)

Refresh Endpoint URL to refresh expired token
}
Response Prompt Instructions for AI to process the response (optional)

Response Mappings

@if (responseMappings.length === 0) {

No response mappings configured.

} @for (mapping of responseMappings.controls; track mapping; let i = $index) { {{ mapping.get('variable_name')?.value || 'New Mapping' }} {{ mapping.get('json_path')?.value || 'Configure mapping' }}
Variable Name Name to store the extracted value @if (mapping.get('variable_name')?.hasError('pattern')) { Lowercase letters, numbers and underscore only } Caption Human-readable description
Type @for (type of variableTypes; track type) { {{ type }} } JSON Path JSONPath expression to extract value
}

Retry Settings

Retry Count Number of retry attempts Backoff (seconds) Delay between retries Strategy @for (strategy of retryStrategies; track strategy) { {{ strategy }} }

Test API Call

@if (testResult) {

Test Result

@if (testResult.success) {
check_circle Success ({{ testResult.status_code }})
} @else {
error Failed: {{ testResult.error }}
} @if (testResult.response_time) {

Response Time: {{ testResult.response_time }}ms

} @if (testResult.response_headers) { Response Headers Headers } @if (testResult.response_body) { Response Body Response } @if (testResult.request_body) { Request Details Actual Request Sent @if (testResult.request_headers) { Request Headers } } @if (testResult.extracted_values && testResult.extracted_values.length > 0) { Extracted Values
Variable {{ element.variable_name }} Value {{ element.value }} Type {{ element.type }}
}
}
@if (data.mode !== 'test') { }