This commit is contained in:
admin
2026-05-20 17:45:09 +09:00
parent 63ac6bc99a
commit da3aef25ce
19 changed files with 17286 additions and 407 deletions

51
check_openapi.py Normal file
View File

@@ -0,0 +1,51 @@
import json
with open(r'docs/openapi_検証.json', encoding='utf-8') as f:
api = json.load(f)
def resolve_ref(ref):
parts = ref.lstrip('#/').split('/')
obj = api
for p in parts:
obj = obj[p]
return obj
def resolve_schema(schema, depth=0):
if depth > 3:
return schema
if '$ref' in schema:
return resolve_schema(resolve_ref(schema['$ref']), depth+1)
if schema.get('type') == 'array' and 'items' in schema:
schema = dict(schema)
schema['items'] = resolve_schema(schema['items'], depth+1)
if 'properties' in schema:
schema = dict(schema)
schema['properties'] = {k: resolve_schema(v, depth+1) for k, v in schema['properties'].items()}
return schema
# /post/lists の200レスポンス
resp = api['paths']['/post/lists']['get']['responses']['200']
schema = resolve_schema(resp['content']['application/json']['schema'])
print('=== GET /post/lists Response 200 ===')
print(json.dumps(schema, ensure_ascii=False, indent=2)[:3000])
print()
# /post/{post_id} の200レスポンス
resp2 = api['paths']['/post/{post_id}']['get']['responses']['200']
schema2 = resolve_schema(resp2['content']['application/json']['schema'])
print('=== GET /post/{post_id} Response 200 ===')
print(json.dumps(schema2, ensure_ascii=False, indent=2)[:4000])
print()
# serversの確認
print('=== Servers ===')
print(json.dumps(api.get('servers', []), ensure_ascii=False, indent=2))
# componentsのparametersでよく使うものを確認
print()
print('=== Key Parameters ===')
for key in ['Authorization', 'date_from', 'date_to', 'limit_50', 'offset']:
param = api['components']['parameters'].get(key, {})
print(f'{key}: in={param.get("in")}, name={param.get("name")}, schema={param.get("schema")}')