82 votes

Comment écrire une API REST?

Je suis en train d'écrire une application iPhone comme un projet de loisirs et il aura besoin d'un service web pour fournir des données. Il n'est pas très différent de ce que je fais au travail, mais au travail je ne écrire des vues et des contrôleurs. Quelqu'un d'autre est responsable de la rédaction du modèle et en général, les clients de fournir le service web.

J'ai fait un peu de programmation web avant, en arrière quand tout le monde à l'aide de MySQL et PHP, mes compétences sont un peu dépassé, mais je suis confiant que je serais en mesure de tirer de l'utilisation de techniques que je connais déjà. Cependant, je ne veux pas perdre mon temps à l'aide d'outils obsolètes. J'ai compris que l'état de l'art serait d'écrire une API REST. Je pensais qu'il devrait y avoir un assez bon cadres de là c'est à peu près juste vous donne une API REST avec CRUD fonctionnalité dès que vous avez défini un modèle.

Je suppose que ma question est: Quel serait le moyen le plus rapide pour obtenir une API REST en place et en cours d'exécution? Vraiment, je veux juste de se concentrer sur l'écriture de l'application iPhone et de ne pas passer trop de temps sur cette API. Ce serait génial si je pouvais obtenir web de l'administration et de la révision de l'histoire. Je dois également ajouter que l'API n'est pas censé être public, de sorte que le support pour l'authentification serait très bien aussi.

Juste pour être clair. Je n'aurais pas l'esprit d'un framework PHP. En fait, il pourrait peut-être mieux depuis que je sais que mon hébergement actuel prend en charge.

42voto

nickfox Points 1777

EDIT:

Les liens ci-dessous qui, apparemment, ont été bonnes pour les 3 ans ne sont plus de travail donc je suis allé et a trouvé un couple de nouveaux tutoriels que je pense qu'elles vont rester dans les parages pendant un certain temps. Ce sont sur les Rayons Wenderlich site, très bien respecté dev ios tutoriel site. Le premier article en fait, les références brisées liens ci-dessous, mais il est complet à l'intérieur de lui-même:

Comment Écrire Une Simple PHP/MySQL Web Service pour une Application iOS

et la seconde a un petit twist pour cela. Il a utilisé parse.com sur le backend et AFNetworking. Les deux sont tout à fait excellent.

Comment Synchroniser les Données de Base avec un Service Web – Partie 1


J'ai réparé les liens cassés ci-dessous par trouver les articles correspondants dans la machine à remonter le temps. Les gens semblent aimer les liens je vais donc les garder. Les liens ci-dessus doivent fournir plus de nourriture pour la pensée.


Je suis en train de faire exactement la même chose avec mon iphone. J'ai trouvé cet article sur la construction d'une API RESTful en PHP:

https://web.archive.org/web/20130910164802/http://www.gen-x-design.com/archives/create-a-rest-api-with-php/

et il y a aussi une suite de l'article ici:

https://web.archive.org/web/20130323001500/http://www.gen-x-design.com/archives/making-restful-requests-in-php/

avec un lien vers le code source en bas de l'article.

8voto

Philipp Flenker Points 960

J'ai programmé une API REST dans ZEND Framework à l'aide de la Zend_Rest_Controller, sur l'iPhone, j'ai utilisé ASIHTTPRequest. Mon expérience avec les deux où est bonne. Au début j'ai eu quelques difficultés à configurer le ZEND et le connecter à mySQL, mais une fois que j'ai compris comment faire, j'ai été en mesure d'écrire l'API très rapidement. Je peux partager plus d'informations avec vous si vous avez d'autres questions.

EDIT: Il semble y avoir aucune documentation officielle sur Zend_Rest_Controller. Ce lien explique comment l'utiliser pour créer votre API. Il vous suffit de désactiver le rendu dans l' init() de votre sous-classe et de mettre en œuvre les méthodes pour chaque appel RESTE.

8voto

Erik B Points 12343

Juste pour vous informer que:

J'ai fini par utiliser Ruby on Rails.

EDIT: Depuis cette réponse a été downvoted pour ne pas fournir la raison derrière le choix de Ruby on Rails et aussi pas d'instructions sur la façon d'écrire une API REST avec elle, j'ai pensé que je voudrais vous donner ma motivation et quelques instructions simples.

J'ai commencé à lire un livre sur Ruby on Rails et s'est rendu compte que je devais faire était d'utiliser des échafaudages et j'ai eu un JSON API REST pour gratuit.

Voici un bon guide pour vous aider à démarrer: http://guides.rubyonrails.org/getting_started.html

Lorsque vous avez votre Ruby on Rails, de l'environnement et de l'exécution, de la création de votre API REST n'est pas plus difficile que de courir:

$ rails generate scaffold Post name:string title:string content:text

(Exemple à partir du lien ci-dessus.) J'ai aussi trouvé que Rails est très facile et gratuit pour la déployer sur heroku, ce qui signifiait que je n'avais pas à payer pour l'hébergement de mon très de base à faible trafic, API REST. Il ya beaucoup d'autres raisons pour lesquelles je suis très heureux de travailler avec Ruby on Rails, mais cela dépasse le cadre de cette question.

3voto

igorgue Points 2961

Qu'en Python?

J'utilise Python, Django et le Piston.

  1. J'avais générer Django modèles à partir de votre existant DB à l'aide de inspectdb.
  2. Ajouter le Django admin à vos modèles.
  3. Ajouter Django Piston à votre application.
  4. Le Profit.

N'ayant aucune expérience de Python ou Django probablement, il vous faudra une journée pour développer cette solution, et tout le code est l'unité testée et prouvée à travailler.

1voto

Shauvik Points 51

La caisse de la suivante classe PHP qui suit MVC. http://www.phpclasses.org/package/5080-PHP-Implement-REST-Web-services-servers.html

Espérons que cette aide.

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