Lorsque vous créez une API déclenchée par Http, la fonction Azure l'héberge sur

https://[function-app-name].azurewebsites.net/api/[Route-configured-in-application]

Existe-t-il un moyen de se débarrasser du terme api de l'URL et de le faire ressembler à:

https://[function-app-name].azurewebsites.net/[Route-configured-in-application]
13
Mayank 15 nov. 2017 à 19:26

4 réponses

Meilleure réponse

Modifiez le fichier host.json et définissez routePrefix sur une chaîne vide:

{
  "http": {
    "routePrefix": ""
  }
}
18
Nate 29 août 2018 à 03:49

La solution Azure Functions v2 est couverte dans cette réponse, le bit http doit être encapsulé dans une propriété d'extensions.

{
  "version": "2.0",
  "extensions": {
    "http": {
      "routePrefix": "customPrefix"
    }
  }
}
22
Denis Pitcher 9 nov. 2018 à 18:55

Vous pouvez également tirer parti de la puissance des proxys de fonction Azure pour cela, ce qui peut être préférable si vous souhaitez être explicite sur les méthodes ou les itinéraires auxquels vous souhaitez accéder.

Créez simplement un fichier proxy.json et ajoutez-y le morceau suivant de JSON.

{
  "$schema": "http://json.schemastore.org/proxies",
  "proxies": {
    "myazurefunctionproxy": {
      "matchCondition": {
        "methods": ["GET"],
        "route": "/{slug}"
      },
      "backendUri": "https://%WEBSITE_HOSTNAME%/api/{slug}"
    },
  }
}

Cet exemple redirigera toutes les requêtes GET vers une route avec le préfixe /api/.

7
Jan_V 16 nov. 2017 à 08:54

La réponse acceptée ne fonctionne plus si vous utilisez les fonctions de la version 2, à la place, vous devez placer les paramètres http dans une propriété d'extensions:

"extensions": {
    "http": {
        "routePrefix": ""
    }
}

Vous pouvez vous faire surprendre en consultant la référence hosts.json car si vous ne regardez que http section, il ne montre que les propriétés http donc assurez-vous de vérifier le début du document pour le format de haut niveau hosts.json.

5
Matt 8 avril 2019 à 05:55
47312531