2013-09-04 5 views
0

Je pose cette question car certains des sites visités semblent utiliser une API RESTful pour accéder aux données même si elles sont sur le site Web ...RESTful Api ou accès direct?

Par exemple: mon site aura 6 pages et 5 d'entre eux utilisent la DB. Mais, je vais aussi avoir un api REST pour mes partenaires ...

Alors, la question est la suivante:

Sur mon site, est-il préférable d'accéder directement à la base de données via mysqli_query ou d'utiliser un API RESTful avec des appels Ajax pour charger des données?

Juste une remarque: je vais utiliser Zend Framework 2 pour mon API RESTful, sauf si quelqu'un a une meilleure option ... Je sais Node.js et PHP ... Je suis capable de l'écrire en Ruby ou quelque chose si c'est mieux pour moi ... Besoin d'un avis sur cela ...

Répondre

1

Utilisez l'API RESTful.

La spécification de REST est que nous utilisons les méthodes HTTP, qu'il appelle les verbes (GET, POST, PUT, DELETE). Une requête directe serait la limiter, ou vous utiliseriez au plus deux méthodes (verbes) - GET et POST.

Pour que vous devez faire:

GET /user/frederick/edit 
GET /user/frederick/update 
GET /user/frederick/delete 
GET /user/new 

Et avec une API RESTful:

GET /user/frederick/ 
POST /user/new/ 
PUT /user/frederick/ 
DELETE /user/frederick/ 
+0

Je vais utiliser des méthodes HTTP, si je trouve un foutu framework PHP qui le supporte ... Ou un Node.js un ... –

+1

Vous pouvez trouver pour (Routes apaisantes ou micro-frameworks) comme Slim Framework, Respect/Repos, routeur Aura et autres. –

+0

J'ai vérifié Slim mais n'a pas très aimé ... J'aime Respect/Repos ... Aura Routeur Je ne l'ai pas trouvé ... –

1

L'avantage d'utiliser votre propre API est que vous n'avez pas d'écrire du code en double . Par exemple, vous pouvez avoir des fonctions generate_for_rest et generate_for_server qui font la même chose et émettent simplement des données dans différents formats. C'est une bonne idée de réutiliser autant que possible vos propres API. Cela dit, je trouve un peu inhabituel qu'un site Web communique avec lui-même avec sa propre API RESTful. Cela nécessite une requête HTTP (bien que cela devrait être extrêmement rapide) et une conversion des données deux fois. Au lieu de cela, il serait plus logique d'avoir une API qui génère les données dont vous avez besoin et une façade qui convertit ces données dans des formats pour qu'ils soient utilisés.

Par exemple vous pouvez avoir une fonction get_all_users. En interne, vous pouvez utiliser get_all_users pour obtenir les résultats en tant que structures de données php que vous pouvez utiliser immédiatement. Dans votre contrôleur qui répond aux requêtes HTTP, vous pouvez effectuer une conversion JSON, mais vous ne devez pas effectuer de travail en double pour obtenir les données pour une utilisation interne ou externe.

+0

Pouvez-vous me recommander un framework PHP pour créer mon API? J'adore ZF2 mais c'est un peu limité ... –