Files
keycloak/docs/guides/admin-api/admin-api-v2.adoc

81 lines
2.0 KiB
Plaintext

<#import "/templates/guide.adoc" as tmpl>
<#import "/templates/kc.adoc" as kc>
<#import "/templates/api.adoc" as api>
<#import "/templates/links.adoc" as links>
<@tmpl.guide
title="Admin API v2: Reference"
summary="REST API for managing Keycloak resources. Experimental feature.">
<#include "/templates/experimental-feature.adoc">
To provide feedback, use the https://github.com/keycloak/keycloak/discussions/50186[Client Admin API v2] GitHub Discussion.
== Prerequisites
The Admin API v2 requires the `client-admin-api:v2` feature:
<@kc.start parameters="--features=client-admin-api:v2"/>
== Client Setup
=== Java
Add the dependency to your project:
[source,xml]
----
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-admin-client</artifactId>
</dependency>
----
[source,java]
----
import org.keycloak.admin.client.Keycloak;
Keycloak adminClient = Keycloak.getInstance("http://localhost:8080", "master", "admin", "password", "admin-cli");
----
=== JavaScript
[source,bash]
----
npm install @keycloak/keycloak-admin-client
----
[source,javascript]
----
import KcAdminClient from "@keycloak/keycloak-admin-client";
const kcAdminClient = new KcAdminClient({ baseUrl: "http://localhost:8080", enableExperimentalApis: true });
await kcAdminClient.auth({ username: "admin", password: "admin", grantType: "password", clientId: "admin-cli" });
----
=== CLI
The Admin API v2 uses the same CLI tool described in the {adminguide_link}#admin-cli[{adminguide_name}] with the `--v2` flag:
<@kc.admin parameters="--v2 config credentials --server http://localhost:8080 --realm master --user admin"/>
== Available Resources
For details on filtering and projection, see <@links.adminapi id="querying" />.
<#if ctx.adminApiV2.hasEndpoints()>
<#list ctx.adminApiV2.categories as category>
=== ${category?cap_first}
<@api.endpoints category=category/>
</#list>
== Models
<@api.schemas/>
<#else>
Admin API v2 documentation metadata is not available in this build.
</#if>
</@tmpl.guide>