Dart - api()
Creates a new HTTP API.
import 'package:nitric_sdk/nitric.dart';
final publicApi = Nitric.api("public");
Parameters
- Name
name
- Required
- Required
- Type
- String
- Description
The unique name of this API within the app. Subsequent calls to
api
with the same name will return the same object.
- Name
opts
- Optional
- Optional
- Type
- ApiOptions
- Description
Additional options when creating the API.
- Name
basePath
- Optional
- Optional
- Type
- String
- Description
Base path for all routes in the API.
- Name
security
- Optional
- Optional
- Type
- List<OidcOptions>
- Description
Security rules to apply with scopes to the entire API.
OidcRule Parameters
- Name
name
- Required
- Required
- Type
- String
- Description
value must be
jwt
- Name
issuer
- Required
- Required
- Type
- String
- Description
the issuer for the JWT tokens e.g.
https://account.region.auth0.com
- Name
audiences
- Required
- Required
- Type
- List<String>
- Description
the
aud
that will be applied to JWT tokens from the issuer.
Examples
Create an API
import 'package:nitric_sdk/nitric.dart';
final publicApi = Nitric.api("public");
Create an API with a base path
If you need to put all the routes in your api below a shared base path, you can do that with the basePath
option. In this example we ensure all routes start with /api/v1/
before the route specific path.
import 'package:nitric_sdk/nitric.dart';
final publicApi = Nitric.api("public", opts: ApiOptions(basePath: "/api/v1"));
Apply JWT authentication to an API
import 'package:nitric_sdk/nitric.dart';
// define your security definition
final oidc = Nitric.oidcRule(
"user",
"https://example-issuer.com/.well-known/openid-configuration",
["YOUR-AUDIENCES"]);
final secureApi = Nitric.api(
"secure",
opts: ApiOptions(
security: [
// apply your security rules here, optionally specifying the required scopes.
oidc(["products:read"])
]
)
);