サイトのAPI、車輪の再発明をやめる!

タスクは、サイトscribbler.ruの APIを作成することでした。これにより、サードパーティの開発者がサイトのリソースを操作し、内部、swfファイルとして、またはサイトの外部でアプリケーションを書くことができます。たとえば、サイトユーザーとメールを送受信できるデスクトップアプリケーションです。



よく知られているロシアのプロジェクト(vkontakte.ru、mail.ruなど)には独自のAPIがあることは誰もが知っています。 例として、私はそれらを学び始め、それらがどのように実装されているかを確認し始めました。 mail.ru APIとvkontakte.ru APIはアーキテクチャが大きく異なり、大まかに言って類似していないため、開発者の生活を複雑にしていると思います。まず、vkontakeでAPIを操作するクラスを作成し、次にmail.ruでクラスを作成し、など



「外国人の「サイトはこの問題をどのように解決したのですか?」





twitter.comに移動し、「API」セクションに移動して、「Twitter APIがRepresentational State Transfer(REST)の設計原則に準拠しようとする」を見て、読んで、確認します。



facebook.comに移動し、「開発者->ドキュメント」セクションに移動し、「APIがRESTのようなインターフェイスを使用する」を再度参照します。



はい、気にせよ! このRESTとは何ですか?



そしてここにある! RESTは、標準のHTTPメソッドGET、POST、PUT、およびDELETEを使用してWebリソースを要求および操作するWebアプリケーションのパラダイムアーキテクチャについて説明します。



私たちは皆、SOAPサービスが何であるかを知っているので、RESTは似たようなもので、より単純です;)



RESTのおかげで、サイトのオブジェクトのメソッドにアクセスし、GETメソッドとPOSTメソッドを使用してパラメーターを渡し、サーバーからXMLを受信できます。 つまり、ユーザーに関する情報を取得する必要がある場合、アドレス... / api / user.getInfo?UserId = 10に移動し、それに応答してXMLに関する情報を取得します。このアドレスでは、ユーザーオブジェクトにアクセスしてそのgetInfoメソッドを実行すると、入力パラメーターはuserId = 10になり、PHPでは、この$ user-> getInfo(10)のようになります。



ただ? 便利ですか? そのように!



さて、話をやめて、サイトがMVCアーキテクチャで実装されていることを想像して、実装の原則に移りましょう。

APIには独自のオブジェクトが必要です。セキュリティの目的で、サイト内で使用されるオブジェクトのメソッドを呼び出さないでください。誰もがこれを理解していると思います。



APIオブジェクトがプロジェクト内のパパに保存され、開発者のアドレスが... / api / user.getInfoに格納され、apiControllerがカットインされ、ユーザーオブジェクトがgetInfoメソッドで存在するかどうかを確認します。 、エラー状態のXMLを返します。その場合、このオブジェクトを作成し、目的のメソッドを呼び出し、返されたデータをXMLに変換してビューに表示します。



ステップバイステップでは、次のようになります。



REST MVCスキーム



したがって、構造化された、簡単で、最も重要な開発が便利なtwitterおよびfacebook APIに類似したアーキテクチャAPIを取得し、サードパーティアプリケーションの開発者がドキュメントを読むことについて困惑しないようにします。また、アプリケーションをプロジェクトに簡単に移植できます



次回は、OAuth認証に関する議論を続けます。これにより、APIを使用するためのユーザー名とパスワードを入力できなくなります。



したがって、現在、 scribbler.ru Webサイトには独自のAPIがあり、実際に試してみたい人がいる場合は、「ようこそ!」、客観的な批判と貴重な願いは素晴らしいと見なされます!



APIドキュメントはscribbler.ru/developersにあります。



PS私は可能な限り明確に書き込もうとしました。開発に関するストーリーは、実際のイベントに基づいて考案されました;)



All Articles