Keystone - JSON Home을 통한 API 발견

1 개요[ | ]

API Discovery with JSON Home
JSON Home을 통한 API 발견

https://docs.openstack.org/keystone/2024.1/user/json_home.html

2 JSON Home이란?[ | ]

JSON Home은 비-브라우저 HTTP 클라이언트를 위한 API 발견 방법을 설명합니다. 이 초안은 아직 검토 중이지만, Keystone은 사용자에게 접근가능한 구현체를 제공합니다. Keystone의 JSON Home API를 호출한 결과는 API 엔드포인트, 위치, API 상태(예: 실험적, 지원됨, 지원중단됨)에 대한 정보를 사용자에게 제공하는 JSON 문서입니다. Keystone의 JSON Home 구현에 대한 자세한 정보는 사양에서 확인할 수 있습니다.

3 JSON Home 문서 요청[ | ]

Keystone의 JSON Home 문서를 요청하는 것은 간단합니다. 이 API는 토큰을 요구하지 않지만, 향후 구현에서는 토큰 검증 및 시행이 추가될 수 있습니다. JSON Home 문서를 얻으려면, application/json-homeAccept 헤더에 지정하여 Keystone 엔드포인트에 쿼리를 보내기만 하면 됩니다:

Bash
Copy
curl -X GET -H "Accept: application/json-home" http://example.com/identity/

결과는 resources 목록을 포함하는 JSON 문서입니다:

json
Copy
{
    "resources": [
        "https://docs.openstack.org/api/openstack-identity/3/ext/OS-TRUST/1.0/rel/trusts": {
            "href": "/v3/OS-TRUST/trusts"
        },
        "https://docs.openstack.org/api/openstack-identity/3/ext/s3tokens/1.0/rel/s3tokens": {
            "href": "/v3/s3tokens"
        },
        "https://docs.openstack.org/api/openstack-identity/3/rel/application_credential": {
            "href-template": "/v3/users/{user_id}/application_credentials/{application_credential_id}",
            "href-vars": {
                "application_credential_id": "https://docs.openstack.org/api/openstack-identity/3/param/application_credential_id",
                "user_id": "https://docs.openstack.org/api/openstack-identity/3/param/user_id"
            }
        },
        "https://docs.openstack.org/api/openstack-identity/3/rel/auth_catalog": {
            "href": "/v3/auth/catalog"
        },
        "https://docs.openstack.org/api/openstack-identity/3/rel/auth_domains": {
            "href": "/v3/auth/domains"
        },
        "https://docs.openstack.org/api/openstack-identity/3/rel/auth_projects": {
            "href": "/v3/auth/projects"
        },
        "https://docs.openstack.org/api/openstack-identity/3/rel/auth_system": {
            "href": "/v3/auth/system"
        }
        ...
    ]
}