Spaces:
Sleeping
Sleeping
| import httpx | |
| import json | |
| base_url = 'https://lex.lab.i.ai.gov.uk' | |
| openapi_url = f'{base_url}/openapi.json' | |
| try: | |
| r = httpx.get(openapi_url, timeout=10) | |
| r.raise_for_status() | |
| spec = r.json() | |
| print('--- Available Endpoints ---') | |
| for path, methods in spec.get('paths', {}).items(): | |
| if 'search' in path or 'explanatory_note' in path or 'similar' in path: | |
| print(f'{path}:') | |
| for method, details in methods.items(): | |
| print(f' - {method.upper()}: {details.get("summary", "")}') | |
| print('\n--- Search Request Schemas ---') | |
| schemas = spec.get('components', {}).get('schemas', {}) | |
| for name, schema in schemas.items(): | |
| if 'Search' in name or 'Explanatory' in name: | |
| print(f'{name}:') | |
| props = schema.get('properties', {}) | |
| for p_name, p_details in props.items(): | |
| p_type = p_details.get('type', 'unknown') | |
| if p_type == 'unknown' and 'anyOf' in p_details: | |
| p_type = 'anyOf' | |
| print(f' - {p_name} ({p_type})') | |
| except Exception as e: | |
| print(f'Error: {type(e).__name__} - {e}') | |