2010-11-27 13 views
0

Ce que je veux et ontQue devrais-je savoir sur les API?

Je suis prêt à créer un API, je sais déjà ce que fait une API signifie. J'utilise PHP comme langage côté serveur.

Cependant, je ne comprends pas vraiment comment une API fonctionne à partir de zéro, et comment puis-je permettre aux utilisateurs d'utiliser mon API après l'avoir créé.

Ce que je pense et je sais

Eh bien droit, je pense maintenant que, avec une API I permettent aux développeurs d'accéder à ma base de données et les requêtes demande. Mais alors pourquoi devrais-je créer un langage complet pour cela? Pourquoi ne peuvent-ils pas utiliser PHP ou toute autre langue côté serveur?

Comme je l'ai vu, les entreprises qui créent des API pour leur site, ils ont besoin d'un enregistrement pour donner aux développeurs une clé API. Est-ce que les développeurs se connectent à la base de données à travers ce API KEY? Et si oui, alors pourquoi n'ont-ils pas de mot de passe aussi? Si je connais l'API de quelqu'un, je peux l'utiliser ou quoi?

Et comme j'ai lu/entendu XML est liée d'une manière ou d'une autre aux API, mais pourquoi et comment?

s'il vous plaît également tenir compte dans vos réponses que je ne veux pas utiliser des cadres ou quelque chose comme ça, je veux faire en rien donc je veux comprendre comment cela fonctionne de A à Z.

+2

Vous devez supprimer le style de code 'API', car cela donne l'apparence d'un mot à la mode dans votre question. De plus vous posez des questions sur les interfaces "Webservice RPC". Aussi, essayez d'énumérer vos multiples questions; pourrait donner de meilleures explications. – mario

Répondre

1

Une API est vraiment juste des méthodes que vous exposer publiquement. Dites, par exemple, vous avez un site de blog. Vous voulez que vos membres puissent poster une entrée de blog sans vraiment venir sur votre site - se connecter, remplir un formulaire, etc. Peut-être qu'ils veulent créer une application Android/IPhone pour poster sur votre blog cool site. Vous pouvez leur permettre de faire cela.

Créer une API pour cela:

<?php 
     function createBlogEntry(memberEmailAddress, memberPassWord, BlogTitle, BlogBody) 
     { 

      //Here you would usually call an internal (or not publicly exposed) method that 
      //contains the actual logic to insert. Like Jim's answer states, you just want 
      //people to be able to performan action in your system, you don't want them to see HOW you do it. 

      encapsulatedBlogCreation(memberEmailAddress, memberPassWord, BlogTitle, BlogBody); 


      //This is where API's get tricky. I need to return to the user the result of 
      // the save so that my user knows what happens. In my API documentation, I 
      //tellthe user 0 = Created Successfully. If this is a READ operation 
      //just return the result. Most modern programming languages also have 
      //a way to capture an HTTP response - so dealing with the return is their responsibility 

      return 0; 
     } 
?> 

Un couple de choses:

  • Dans mon API, je ne l'ai pas besoin d'une clé de développeur, je permis à l'utilisateur de passer leurs informations de connexion . Une clé API fait la même chose, elle identifie de manière unique une requête et la relie à un utilisateur du système.
  • Cette API n'utilise pas XML. C'est à peu près aussi simple qu'une api. Cela peut être appelé en envoyant une requête HTTP qui peut être faite avec n'importe quel langage de programmation moderne. Dites que je mets le code ci-dessus dans un fichier appelé blog.php et le mettre à la racine de mon blog. Je l'appellerais comme:

* http: //myblogsite.com/blog.php? MemberEmailAddress = myEmal @ exemple.com & memberPassWord = myPass & BlogTitle = Titre-de-post & BlogBody = the_blog_post_is_here *

Une chose que vous devez comprendre, est qu'il doit y avoir besoin d'une API. Vous pouvez exposer une méthode pour créer une entrée de blog, mais si personne ne la connaît ou ne l'utilise, elle ne vaut rien. Les API doivent être documentées, annoncées et offrir un avantage aux utilisateurs potentiels.

+0

Merci pour votre réponse, Ok je peux créer des fonctions que les gens peuvent utiliser, mais comment peuvent-ils l'utiliser s'ils n'ont pas accès à ma base de données? Devrais-je leur donner mes informations de connexion à la base de données (nom d'utilisateur, mot de passe)? Et comment peuvent-ils utiliser ma fonction en PHP s'ils ne l'ont pas dans leur propre machine? Ai-je besoin de leur donner un fichier où il y a les fonctions etc, comme sur YouTube API? – Adam

+0

Wow man c'est exactement ce que je voudrais savoir même si je ne savais pas ce que je veux xD, l'omg LINK, c'est tellement logique de cette façon ...: D merci man! – Adam

+0

@CIRK - J'ai mis à jour la réponse. Fondamentalement, vous les faites passer dans tout ce dont vous avez besoin pour effectuer une action. Ils n'ont pas besoin de vos détails de connexion (et j'espère qu'ils ne les ont pas), parce que vous allez transmettre ce qu'ils vous ont donné dans votre programme - votre programme sait comment se connecter à la base de données. La connexion DB réelle, insertion de la base de données se passe à l'intérieur de "encapsulatedBlogCreation()". Cette méthode est dans un autre fichier qui n'est pas publiquement exposé - et contient les chaînes de connexion de base de données, et la logique pour insérer l'entrée de blog (c'est-à-dire SQL Query). – tpow

1

Une API est essentiellement une interface qui permet à d'autres programmeurs d'accéder à votre programme. Vous voulez probablement vous asseoir et réfléchir à ce que vous voulez que les autres puissent faire. Vous ne voulez généralement pas donner à d'autres développeurs un accès pur à votre base de données pour plusieurs raisons (heureusement évidentes).

Les clés API sont généralement utilisées pour contrôler l'accès à l'API. Elles peuvent être envoyées avec des appels de méthodes pour s'assurer que seules les personnes auxquelles vous souhaitez donner accès ont accès. Ce sont essentiellement des mots de passe. Lire les wikipedia entry peut rendre les choses plus claires.

+0

merci beaucoup pour votre réponse! – Adam

1

L'API correspond à Application Programming Interface, et nous pouvons y voir un ensemble de bibliothèques composées de fonctions que vous pouvez réutiliser encore et encore. Par exemple l'API WIN32 est composée pour l'ensemble des fonctions (développées en C/C++) pour que les applications interagissent avec le Système Opérationnel, cette API inclut les bibliothèques comme: kernel32.dll, advapi32.dll, gdi32.dll, user32.dll , comctl32.dll, shell32.dll.

Il existe d'autres termes que vous devriez connaître, tels que toolkit and framework pour bien déterminer ce que vous voulez faire. Normalement, les API sont écrites en C/C++ et dans la plupart des cas, elles réutilisent les fonctions fournies par l'API du Système Opérationnel.

+0

merci beaucoup pour votre réponse, eh bien je veux dire API pour le web :) mais bon de savoir que le système d'exploitation fonctionne comme le web. – Adam

+0

Cette réponse ne s'applique qu'à un petit sous-ensemble d'API reflétant son expérience. – tpow

+0

@cinqoTimo: Je parlais de l'OS APIS, qui inclut également le serveur Web côté APIS.En particulier, la création d'une API pour l'échange d'informations à l'aide de PHP côté serveur est liée à la création de services WebServices, XML-RPS ou SOAP. PHP fournit un accès aux deux via l'extension xmlrpc, qui est basée sur le projet xmlrpc-epi [http://xmlrpc-epi.sourceforge.net] qui est écrit en C. – ArBR