@fern-api/auth0-management-snippets
v0.0.5
Published
Generate usage snippets for Auth0 Management SDKs
Downloads
27
Readme
Auth0 Management Snippets SDK
The Auth0 Management Snippets SDK produces valid usage snippets from arbitrary request data for the Auth0 Management API.
Supported Languages
The SDK supports generating code snippets for the following languages:
- TypeScript - Node.js/TypeScript SDK snippets
- Go - Go SDK snippets
Usage
The SDK can be used as follows:
import { SnippetResolver } from "@fern-api/auth0-management-snippets";
const resolver = new SnippetResolver();
const typescript = resolver.sdk("typescript");
const users = typescript.endpoint("GET /users");
const response = await users.generate({
auth: {
type: "bearer",
token: "<YOUR_API_KEY>"
},
queryParameters: {
per_page: 10,
page: 0
}
});The generated response.snippet will be set to the following:
import { ManagementClient } from "@fern-api/auth0-management-snippets";
async function main() {
const client = new ManagementClient({
token: "<YOUR_API_KEY>",
});
await client.users.list({
perPage: 10,
page: 0,
});
}
main();Go Usage
To generate Go snippets, specify "go" as the language:
import { SnippetResolver } from "@fern-api/auth0-management-snippets";
const resolver = new SnippetResolver();
const go = resolver.sdk("go");
const users = go.endpoint("GET /users");
const response = await users.generate({
auth: {
type: "bearer",
token: "<YOUR_API_KEY>"
},
queryParameters: {
per_page: 10,
page: 0
}
});The generated response.snippet will be set to the following:
package example
import (
client "github.com/auth0/go-auth0/management/client"
option "github.com/auth0/go-auth0/management/option"
context "context"
management "github.com/auth0/go-auth0/management"
)
func do() () {
client := client.NewClient(
option.WithToken(
"<YOUR_API_KEY>",
),
)
client.Users.List(
context.TODO(),
&management.ListUsersRequestParameters{
PerPage: management.Int(
10,
),
Page: management.Int(
0,
),
},
)
}More Examples
Get Action by ID
const resolver = new SnippetResolver();
const typescript = resolver.sdk("typescript");
const action = typescript.endpoint("GET /actions/actions/{id}");
const response = await action.generate({
auth: {
type: "bearer",
token: "<YOUR_API_KEY>"
},
pathParameters: {
id: "action_123"
}
});Generated snippet:
import { ManagementClient } from "@fern-api/auth0-management-snippets";
async function main() {
const client = new ManagementClient({
token: "<YOUR_API_KEY>",
});
await client.actions.get("action_123");
}
main();Default snippets
You can call the generate method without a request payload to retrieve the default example
of the endpoint like so:
import { SnippetResolver } from "@fern-api/auth0-management-snippets";
const resolver = new SnippetResolver();
const typescript = resolver.sdk("typescript");
const users = typescript.endpoint("POST /users");
const response = await users.generate();The generated snippet will include required fields with example values:
import { ManagementClient } from "@fern-api/auth0-management-snippets";
async function main() {
const client = new ManagementClient({
token: "<token>",
});
await client.users.create({
connection: "connection",
});
}
main();Note that the result will omit optional properties, so if a request is entirely composed of optional values, you're better off providing your own request payload.
Sync Methods
The SDK also exposes a generateSync method for users that don't have access to async and await in specific contexts.
It uses the same parameters as generate and can be invoked like so:
import { SnippetResolver } from "@fern-api/auth0-management-snippets";
const resolver = new SnippetResolver();
const typescript = resolver.sdk("typescript");
const users = typescript.endpoint("GET /users")
const response = users.generateSync({ ... });Endpoint Filtering
For performance, the endpoint method filters the provided API specification to only contain the
selected endpoint (e.g. GET /users). This means you can reuse the filtered result with a
simple variable for the endpoint like so:
// The 'users' variable acts upon an API specification that only contains the 'POST /users' endpoint.
const users = typescript.endpoint("POST /users")
// Generate multiple snippets using the same instance.
const one = users.generateSync({ ... });
const two = users.generateSync({ ... });
...