2010-11-27 8 views
0

私が欲しいものと私はAPIを作成するために喜んだAPIについて知っておくべきことは何ですか?

を持って、私はすでにAPIの略ん知っています。 PHPをサーバーサイド言語として使用しています。

しかし、私は本当にAPIがゼロからどのように動作するか理解していない、とどのように私はそれを作成した後、ユーザーが自分のAPIを使用することを可能にすることができます。

私が何を考えて

と今、私はAPIで、私は自分のデータベースとリクエストクエリに到達するために、開発者を有効にすることを考えるまあ

を知っています。しかし、なぜ私はそれのための完全な言語を作成する必要がありますか?なぜ彼らはPHPまたは他のサーバー側言語を使用できないのですか?

私が見たように、自分のサイトのためのAPIをクレート企業は、彼らが開発者にAPIキーを与えるために登録が必要です。開発者はこのデータベース012roughにデータベースにログインしますか?API KEY?そして、はいの場合、なぜ彼らもパスワードを持っていないのですか?私が誰かのAPIキーを知っていれば、それを使うことができますか?

そして、私が読んで/ API年代に何らかの形で関係しているXML聞いたが、なぜ、どのように?私はそれがZ.

+2

'API'コードのスタイリングを削除して、あなたの質問の流行語のように見えるようにしてください。さらに、実際には "WebサービスRPC"インタフェースについて質問しています。また、複数の質問を列挙してみてください。より良い説明が得られるかもしれない。 – mario

答えて

1

APIは実際にあなたが公開しているメソッドです。たとえば、ブログサイトがあるとします。ログインしたり、フォームに記入したりするなど、実際にあなたのサイトに来ることなく、あなたのメンバーがブログエントリを投稿できるようにします。 おそらく彼らはあなたのクールなブログサイトに投稿するためにAndroid/iPhoneアプリを作成したいと思うでしょう。あなたはそれらを許可することができます。

は、このためのAPIを作成します。

<?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; 
     } 
?> 

カップルの事:私のAPIで

  • を、私は開発者のキーを必要としなかった、私は、ユーザーが自分のログイン資格情報を渡す許可。 APIキーは同じことを行います。要求を一意に識別し、システム内のユーザーにリンクします。
  • このAPIはXMLを使用していません。これはapiの取得と同じくらい簡単です。これは、現代のプログラミング言語で実行できるHTTPリクエストを送信することで呼び出すことができます。上記のコードをblog.phpというファイルに入れ、それを自分のブログサイトのルートに入れてみましょう。私はそれを次のように呼びます:

* http://myblogsite.com/blog.php?memberEmailAddress = myEmal @ example。あなたが理解する必要があるCOM & memberPassWord = MYPASS & BlogTitle =タイトル-のポスト& BlogBody = the_blog_post_is_here *

ことの一つは、APIの必要性がなければならないということです。ブログエントリを作成するメソッドを公開することはできますが、それについて誰も知っていない、または使用していなければ、それは価値がありません。 APIを文書化し、宣伝し、潜在的なユーザーに利益を提供する必要があります。

+0

あなたの答えをありがとう、私は人々が使用できる機能を作成できますが、自分のデータベースにアクセスできない場合はどうすれば使用できますか?私は彼らに私のデータベース接続の詳細(ユーザー名、パスワード)を与える必要がありますか?そして、彼らが自分のマシンにそれを持っていない場合、私はどのようにPHPで私の関数を使うことができますか? YouTube APIのような機能があるファイルを提供する必要がありますか? – Adam

+0

これはまさに私が何を望んでいるのか分からなくても知りたいと思っていることですが、このように論理的です。 – Adam

+0

@CIRK - 回答を更新しました。基本的には、アクションを実行するために必要なすべてをパスします。彼らはあなたのプログラムにあなたが与えたものを渡すつもりだから、あなたの接続の詳細は必要ない(そして彼らはそれらを持っていないことを願っています)。あなたのプログラムはデータベースに接続する方法を知っています。実際のDB接続、DB挿入は "encapsulatedBlogCreation()"内で行われています。このメソッドは公開されていない別のファイルにあり、データベース接続文字列とブログエントリ(つまりSQLクエリ)を挿入するロジックが含まれています。 – tpow

1

にアンからどのように動作するかを理解したいので

はまた、私はスクラッチでそれをしたい、私は任意のフレームワークやそのような何かを使用したくないというあなたの答えにご検討くださいAPIは、基本的に他のプログラマーがあなたのプログラムにアクセスできるようにする任意のインターフェースです。あなたは、座って、他の人ができるようにしたいものについて考えてみたいでしょう。一般的に、他の開発者にいくつかの(うまくいけば明らかな)理由でデータベースへの純粋なアクセス権を与えたくないのです。

APIキーは、一般的にAPIへのアクセスを制御するために使用され、これらはメソッドと一緒に送ることができますが、アクセス権を与えたいだけの人は、アクセス権を持っていることを確認するために呼び出します。それらは基本的にパスワードです。 wikipedia entryを読むと、わかりやすくなる場合があります。

+0

あなたの答えには大変感謝しています! – Adam

1

APIスタンドアプリケーションプログラミングインターフェイスとなり、何度も繰り返し使用できる機能用に構成されたライブラリセットと考えることができます。たとえば、WIN32 APIは、アプリケーションがOperative Systemと対話するための一連の関数(C/C++で開発された)用に構成されています。このAPIには、kernel32.dll、advapi32.dll、gdi32.dll、user32.dll 、comctl32.dll、shell32.dll。

toolkit and frameworkなど、あなたがしたいことを十分に判断するために知っておくべきいくつかの用語があります。通常、APIはC/C++で書かれており、ほとんどの場合、Operative System APIが提供する機能を再利用します。

+0

お返事ありがとうございます。ウェブ用のAPIを意味しています。 – Adam

+0

この回答は、経験を反映したAPIの小さなサブセットにのみ適用されます。 – tpow

+0

@cinqoTimo:私はOS APISについて話していましたが、WebサーバーサイドのAPISも含まれています。特に、サーバー側でPHPを使用して情報を交換するためのAPIを作成することは、Webサービス、XML-RPSまたはSOAPベースのサービスの作成に関連しています。 PHPは、C言語で書かれたxmlrpc-epiプロジェクト[http://xmlrpc-epi.sourceforge.net]をベースにしたxmlrpc拡張モジュールの両方へのアクセスを提供します。 – ArBR

関連する問題