Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Dans .NET.NET Aspire, les ressources qui exposent les points de terminaison configurent uniquement l’hôte et le port, qui ne sont pas connus jusqu’au moment de l’exécution. Si vous devez accéder à un chemin spécifique sur l’un de ces points de terminaison, en particulier à partir du tableau de bord, vous pouvez définir des URL de ressources personnalisées. Vous pouvez également ajouter des URL personnalisées qui ne sont pas liées à un point de terminaison. Toutes les URL personnalisées sont uniquement disponibles en mode « Exécuter », car elles sont destinées à une utilisation du tableau de bord. Cet article montre comment définir des URL personnalisées.
Comportement du point de terminaison par défaut
Par défaut, .NET.NET Aspire les ressources de projet s’appuient sur des configurations existantes telles que Kestrel ou des profils de lancement pour déterminer l’hôte et le port d’une ressource pour un point de terminaison configuré, et les points de terminaison sont toujours affichés sur le tableau de bord.
De même, vous pouvez exposer explicitement des points de terminaison à l’aide de l’API WithEndpoint . Cette API vous permet de spécifier l’hôte et le port d’une ressource, qui est ensuite utilisé pour créer l’URL par défaut de cette ressource. L’URL par défaut est généralement au format <scheme>://<host>:<port>
. Pour omettre le port hôte, utilisez l’une des méthodes suivantes :
Pour plus d’informations, consultez les méthodes d’extension de point de terminaison.
Types de ressources pris en charge
Les URL de ressource personnalisées sont prises en charge pour les types de ressources suivants :
Personnaliser les URL de ressource
Utilisez la surcharge appropriée WithUrl
, WithUrls
, ou les API WithUrlForEndpoint
sur n’importe quel générateur de ressources pris en charge pour définir des URL personnalisées pour une ressource. L’exemple suivant montre comment définir une URL personnalisée pour une ressource de projet :
var builder = DistributedApplication.CreateBuilder(args);
var api = builder.AddProject<Projects.AspireApp_Api>("api");
api.WithUrl("/admin", "Admin Portal");
builder.Build().Run();
Conseil / Astuce
Il existe une fonction surchargée qui accepte une string
, vous permettant de passer n'importe quelle URL. Cela est utile pour définir des URL personnalisées qui ne sont pas directement liées au point de terminaison de la ressource.
Le code précédent affecte une référence de projet à la api
variable, qui est ensuite utilisée pour créer une URL personnalisée pour l’itinéraire Admin Portal
. La méthode WithUrl
prend un ReferenceExpression et un nom à afficher en tant que paramètres. L’URL résultante est disponible dans le tableau de bord, comme illustré dans la capture d’écran suivante :
Personnaliser l’URL du point de terminaison
Scalar et Swagger sont des services d’API courants qui améliorent la facilité d’utilisation des points de terminaison. Ces services sont accessibles via des URL liées aux points de terminaison déclarés.
Pour personnaliser l’URL du premier point de terminaison de ressource associé, utilisez la WithUrlForEndpoint méthode.
Si vous souhaitez ajouter une URL distincte (même pour le même point de terminaison), vous devez appeler la surcharge WithUrl
qui prend une chaîne ReferenceExpression ou une chaîne interpolée, ou appeler WithUrls
et ajouter l’URL à la liste Urls
dans le contexte.
var builder = DistributedApplication.CreateBuilder(args);
builder.AddProject<Projects.AspireApp_Api>("api")
.WithUrlForEndpoint("https", url =>
{
url.DisplayText = "Scalar (HTTPS)";
url.Url = "/scalar";
});
builder.Build().Run();
L’exemple précédent suppose que la ressource de api
projet a un https
point de terminaison configuré. La méthode WithUrlForEndpoint
met à jour l'élément ResourceUrlAnnotation associé au point de terminaison. Dans ce cas, il affecte le texte d’affichage à Scalar (HTTPS)
et le chemin relatif /scalar
à l’URL.
Lorsque la ressource est démarrée, l’URL est disponible dans le tableau de bord, comme illustré dans la capture d’écran suivante :
Vous pouvez également utiliser la surcharge qui accepte une Func<EndpointReference, ResourceUrlAnnotation>
fonction de rappel. Cela vous permet de spécifier des liens approfondis sur les instances cibles EndpointReference .
Personnaliser plusieurs URL de ressource
Pour personnaliser plusieurs URL pour une ressource, utilisez la WithUrls méthode. Cette méthode vous permet de spécifier plusieurs URL pour une ressource, chacune avec son propre texte d’affichage. L’exemple suivant montre comment définir plusieurs URL pour une ressource de projet :
var builder = DistributedApplication.CreateBuilder(args);
builder.AddProject<Projects.AspireApp_Api>("api")
.WithUrls(context =>
{
foreach (var url in context.Urls)
{
if (string.IsNullOrEmpty(url.DisplayText))
{
url.DisplayText = $"API ({url.Endpoint?.Scheme?.ToUpper()})";
}
}
});
builder.Build().Run();
Le code précédent parcourt les URL définies pour la ressource de api
projet et attribue un texte d'affichage selon un schéma. Les URL obtenues sont disponibles dans le tableau de bord, comme illustré dans la capture d’écran suivante :
Conseil / Astuce
Le ResourceUrlsCallbackContext expose une méthode d'extension qui vous permet d'accéder facilement aux points de terminaison nommés de la ressource sous-jacente. Appelez l’API GetEndpoint
sur une instance de contexte pour y parvenir.
Cycle de vie de personnalisation d’URL
Les rappels de personnalisation d’URL s’exécutent pendant le cycle de vie du modèle d’application, notamment lors du traitement des événements BeforeResourceStartedEvent. Les URL associées aux points de terminaison deviennent actives et apparaissent dans le tableau de bord une fois que le point de terminaison lui-même devient actif. Les URL non associées aux points de terminaison deviennent actives uniquement lorsque la ressource entre dans l’état « En cours d’exécution ». Cela garantit que toutes les URL personnalisées sont correctement représentées et disponibles lorsque les ressources de l’application sont entièrement opérationnelles.
Voir aussi
- vue d’ensemble du tableau de bord .NET.NET Aspire
- .NET .NET Aspire hôte d’application