8 votes

Sous-domaine API pour une application Heroku, est-ce possible ?

J'essaie de créer une API et je crains que toutes mes ressources ne soient pas accessibles avec le domaine api.myapp.com ou qu'elles "vivent" avec les mauvaises uris.

J'ai ajouté le CNAME pour mon nom de domaine afin qu'il pointe vers mon application Heroku. (ex : naviguer vers www.myapp.com vous amène à https://myherokuapp.heroku.com )

J'aimerais mettre en place un sous-domaine API, de sorte qu'un GET vers https://api.myapp.com vous emmène à https://myherokuapp.heroku.com/api/v1

Le meilleur scénario serait qu'un POST à https://api.myapp.com/accounts/12345 créerait un nouveau compte. Est-ce possible ?

(Je sais que les sous-domaines (ex : mysubdomain.myappname.heroku.com) ne sont pas possibles avec Heroku)

Je pense que la réponse pourrait se trouver à trois endroits différents :

  1. Quelque chose à voir avec les configurations de redirection des fournisseurs DNS (peut-être quelque chose à voir avec les enregistrements "A").
  2. Quelque chose à configurer dans Heroku, éventuellement un add-on payant pour gérer les domaines/sous-domaines.
  3. Gérer tous les sous-domaines de mon application.

2voto

John Beynon Points 23163

Si vous souhaitez faire la différence entre api.mydomain.com et www.mydomain.com et avoir des contrôleurs différents pour vos requêtes API, vous pouvez certainement utiliser les routes Rails contraintes à votre sous-domaine api pour gérer cela.

constraints :subdomain => "api" do
  scope :module => "api", :as => "api" do
   resources :posts
  end
end

qui utiliserait alors le fichier posts_controller.rb dans le dossier app/controllers/api de votre application.

Vous aurez alors ajouté www.mydomain.com et api.mydomain.com aux domaines personnalisés de votre application et les routes s'occuperont du reste.

Vous pouvez également consulter le site Raisin Gem pour vous aider à construire votre api

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X