アプリケーション プログラミング インターフェイスのシステムは、さまざまなソフトウェア コンポーネントとリソースが相互に対話できるようにする基本的な概念を表します。適切に設計されたソフトウェアには内部 API があり、コードの整理やコンポーネントの再利用が容易になります。さらに、「他人」が開発した機能を使用できるようにする、公的にアクセス可能なさまざまなインターフェイスがあります。

APIとは何ですか?

 APIとは何ですか?

アプリケーション プログラミング インターフェイスは、ソフトウェア コンポーネントとの可能な対話の仕様として定義されます。これは例で説明できます。ソフトウェア コンポーネントを車として想像してみてください。そのインターフェースは、車両が「できる」こと、つまり加速、ブレーキ、ラジオのオンなどについての情報を提供します。さらに、車両の API は、前述の機能をトリガーする方法に関する情報も提供します。加速するには、足でアクセル ペダルを踏みます。

API は、アクセル ペダルを踏んだときに燃焼エンジン内で何が起こるかを説明する必要さえありません。従来の自動車の運転を覚えたら、まったく新しいスキルセットを訓練しなくても、電気自動車のハンドルを握ることもできます。 「何を」「どのように」に関する情報は API 定義に記録されます。API 定義は抽象的な量を表すため、車両自体とは独立して参照する必要があります。

 APIとは何ですか?

一部のインターフェイスの名前は、インタラクションの仕様とソフトウェア コンポーネント自体の両方の同義語として使用されることが多いことに常に注意してください。たとえば、「Twitter API」という用語は、Twitter と対話するときに使用される一連のルールを意味するだけでなく、対話する「もの」の名前としても認識されます。

 APIとは何ですか?

インターフェースはどのように役立ちますか?

ソフトウェアに関しては、インターフェイスは文字通り遍在します。これらは、情報テクノロジーの基本概念の 1 つである抽象化と密接に関連しています。これは、システムの複雑さを「整理」し、複雑なタスクを簡素化する手段を表します。この原理は、よく知られている Amazon ダッシュ ボタンを使用して説明できます。集積回路を備えた電池駆動のプッシュ ボタンは、「プッシュ」を使用して Amazon に特定の商品を注文します。

 APIとは何ですか?

この製品を使用したい場合は、まずスマートフォン アプリを使用して WiFi ネットワークと Amazon アカウントに接続し、次にトイレット ペーパーなど、毎日必要な特定の製品にリンクします。在庫が少なくなったら、ボタンを押すだけで追加注文できます。同じ原則がアプリケーション プログラミング インターフェイスにも当てはまります。ここでも、外からはシンプルに見えるインターフェイスがプロセスの複雑さを「隠し」ています。製品 ID はデータベースから取得する必要があり、配送先と請求先住所はアカウントを通じて決定する必要があり、事前に最寄りの物流センターに連絡する必要があります。あなたへの配達がついにあなたのところへ届きます。もちろん、他のすべての注文も時間通りに配達する必要があります。

ここで、顧客としてこれらすべてのプロセスを自分で管理しなければならないことを想像してください。結局のところ、1 回の注文に必要な複雑さと時間があまりにも長すぎるため、トイレット ペーパーの代替調達オプションに切り替えることになるでしょう。トイレット ペーパーの配達には、コンピューターを利用した長いプロセス チェーンが必要ですが、心配する必要があるのは 1 つだけです。ボタンを押すことです。

 APIとは何ですか?

これはまさに、ソフトウェア開発者やプログラマーにとってのAPI の仕組みです。圧倒的な量の複雑さが、今から使用できる比較的単純な一連の対話に組み込まれているため、毎回最初から始める必要はありません。ソフトウェア プロジェクトでは、それぞれが異なる API に依存する何千ものインターフェイスを使用できます。

API 統合はどのように機能しますか?

インターフェースは、長年にわたってコンピューター科学者やプログラマーの標準的なレパートリーの一部でした。従来、API は、同じマシン上で実行されるコード コンポーネントを接続するために使用されてきました。今日、ネットワークはユビキタスになっているため、いわゆる「パブリック」または「オープン」API がますます多く利用可能になっています。このようなインターフェイスは「外向き」であり、インターネット経由でアクセスできます。これにより、ネットワーク経由で他社のソフトウェア コードと対話できるプログラム コードを作成できます。このプロセスは API 統合と呼ばれます。

 APIとは何ですか?

ただし、この文脈では、「オープン」または「パブリック」は「無料」と同じではありません。ただし、このような API が利用できるため、インターフェイスの統合が大幅に簡素化されます。多数のオープン API が Web 上で利用できます。ここでは特にハイテク大手が際立っています。基本的に、プラットフォームは、そのインターフェイスが生み出す可能性によってのみ実際のプラットフォームになります。

  • Google API は、コードをあらゆる Google サービスに接続します。 API はグループにとって非常に重要です。大手インターフェース管理プラットフォームである Apigee が数年前に買収されたのはそのためです。

  • Facebook API を使用すると、とりわけ、会社のマーケティング ツールにアクセスできます。しかし、Cambridge Analytica スキャンダルの後、Facebook は API 経由でアクセスできる情報の利用を厳しく制限しました

知っておくべき他の重要なアプリケーション プログラミング インターフェイスの概要については、ここを参照してください

 APIとは何ですか?

Web サービスは API と同じですか?

 APIとは何ですか?

おそらく、「Web サービス」という用語 (特に 2000 年代に入ってからすぐに、頻繁に、時にはインフレ的に使用されました) や「オープン API」の原則をまだ覚えているでしょうか?実際、Web サービスはある種のオープン インターフェイスにすぎず、かなり厳格な仕様セットを必要とします。これには、たとえば、XML の一種である WSDL (Web Services description Language) で利用できることが含まれます。

Web サービスは当初、 サービス指向アーキテクチャ(SOA) の一部として意図されていました。 SOA はその可能性を最大限に発揮できなかったため、Web サービスも画期的な進歩を遂げることができませんでした。サービス間通信における技術の進歩、特により無駄がなく、より柔軟な REST API の出現も、パブリック API の世界における Web サービスの重要性の喪失に寄与しています。

レストとは何ですか?そして何ができるのでしょうか?

当初、Web サービスは、http 経由で XML ドキュメントを送信するメッセージング プロトコルSOAP (Simple Object Access Protocol) 経由で通信することになっていました。ただし、現在、ほとんどの Web ベースのインターフェイスは、アーキテクチャの基礎としてREST (Representational State Transfer) プロトコルを使用しています。

REST は 2000 年にコンピュータ科学者の Roy Fieldingによって正式に導入されました。これには、さまざまなタイプのメディア コンテンツ (テキスト、画像、ビデオ) を含む分散システムを作成するための一連のアーキテクチャ コンポーネント、設計原則、およびインタラクションが含まれています。 REST の核心は、World Wide Web 上での情報の柔軟な通信と表示を可能にするシステムを構築する方法 (スタイル) です。また、汎用のコンポーネントを簡単に作成するために必要な基本構造も提供します。

REST API 内では、リソースは、ユーザー、ツイートのリスト、ツイートの検索結果のリストなど、ほぼあらゆるものになります。これらのリソースはそれぞれ、「リソース識別子」を介してアドレス指定できます。 Web ベースの REST インターフェイスの場合、これは通常 URL です。アプリケーションがこの識別子を使用するリソースを要求すると、API は、アプリケーションがそれに応じて処理できる形式 (JPEG ファイルや HTML ページなど) で現在の表現を配信します。

REST の重要なユニークなセールス ポイントの 1 つは、要求元のアプリケーションにデータを転送することです。これにより、アプリケーションはデータに対して「やりたいことを何でもできる」ため、優れた柔軟性が得られますが、その一方で、効率性も犠牲になります。結局のところ、処理のためにデータを Web 全体に「転送」するには時間がかかります。

APIの例

インターネット上には、特に業界の重鎮からの、対話できるパブリック インターフェイスが多数あります。いくつかの顕著な例は次のとおりです。

  • Google API : マップから翻訳者まで、あらゆる Google サービスにコードを接続できます。 Google にとってインターフェースは非常に重要であるため、同社はこの目的のために、主要な API 管理プラットフォームである Apigee を買収しました。

  • Facebook API : Facebook ソーシャル グラフおよびマーケティング ツールへのプログラムによるアクセスを可能にします。

API が実際にどのように機能するかを理解するために、次の 2 つの段落で Java API と Twitter API を詳しく見ていきます。

Javaインターフェース

Java API は、 Java Development Kit をインストールした人なら誰でも完全に利用できる、「すぐに使える」ソフトウェア コンポーネントのライブラリを表します。これらのコンポーネントは一般的なタスクを実装するために使用され、開発者が毎回最初から始める必要がないため、一般に生産性が向上します。

たとえば、基本的なソフトウェア コンポーネントはリストです。 Java API は、このリストでできること (項目の追加、リストの並べ替えなど) を定義します。さらに、インターフェイスはこれらのアクションがどのように実行されるかも決定します。リストの例をそのまま使用します。リストを並べ替えるには、アルファベット順、数値順、または色などで並べ替えるかを指定する必要があります。

Twitterのインターフェース

Twitter API は、Java API とは対照的に、ソフトウェア開発者がプロ​​グラムで Twitter データを操作できるようにする Web ベースの JSON インターフェイスです。 Twitter API にアクセスするには、インターネット経由でリクエストを行う必要があります。 Web ベースのインターフェイスを使用すると、アプリケーションは Web ブラウザと同じように http リクエストを送信します。ただし、答えは Web ページの形式ではなく、ソフトウェアによって処理される形式で返されます。これらの形式はさまざまなバージョンで利用できます。Twitter は人気があり、特に使いやすい JSON に依存しています。

Twitter の基本要素はツイートです。 Twitter インターフェイスは、検索や作成など、ツイートでできることを定義します。ただし、API はこれがどのように機能するかを決定します。ツイートを検索するには、検索語またはハッシュタグの形式で条件を指定する必要があります。

 APIとは何ですか?

インターフェイスデザインはどのように機能するのでしょうか?

API 設計では、インターフェイスの「何を」「どのように」策定するプロセスを記述します。すべての創造的な取り組みと同様、API の設計は基本的に、開発者がどれだけの注意とノウハウを注ぐかにかかっています。高品質のアプリケーション プログラミング インターフェイス:

  • 一貫性があり、

  • コンテキストを組み込むことができる

  • ユーザーのニーズを考慮します。

一貫した動作は、ソフトウェア開発自体の API の使用速度とエラーの発生しやすさに大きな影響を与えます。一般に、同様のタスクを実行する API は同様に「動作」する必要があり、それらの技術的な違いは無関係です。

コンテキストの組み込みは、API 自体ではなく外部要因に関係するものの、一貫性のもう 1 つの形式です。これは、一般的なベスト プラクティスを活用し、ユーザーがすでに使い慣れている他の A​​PI からインスピレーションを受けることです。

ただし、インターフェイスを設計するときは、ユーザーを優先リストの最上位に置く必要があります。ユーザーが誰で、ユーザーのニーズが何であるかを把握する必要があります。ユーザーの「問題点」を理解し、それを取り除く手助けをすれば、ユーザー ベースが満足する可能性は高くなります。アプリケーション プログラミング インターフェイスを始める準備ができている場合は、 この無料のインターフェイス開発ツールのリストをお見逃しなく。

この投稿は、米国の姉妹誌である Infoworld の記事に基づいています

ソフトウェア開発者を興奮させる 10 のこと

プロダクト マネージャーおよびプロジェクト マネージャー一般に、開発者は、誰かが自分の仕事のやり方を説明しようとすることを特に歓迎しません。しかし、プロダクト マネージャーやプロジェクト マネージャーが開発チームを率いることが多いため、これがまさに意見の相違につながる可能性があります。 devRant の David Fox 氏もこれについて次のように意見を述べています。「結局のところ、ほとんどの場合、製品マネージャーやプロジェクトマネージャーは、ソフトウェア開発者が知っている日々の課題や問題を考慮せずに、ある意味でプロジェクトやプロセスの『所有者』になっているのです。」

上司プロダクト マネージャーやプロジェクト マネージャーと同様に、開発マネージャーやエンジニアリング マネージャーも開発者のチームを率い、プロジェクトが予定どおりに予算内で完了するようにする責任があります。 「企業によっては、上司が開発チームのメンバーでもあるという状況が発生する場合があります。特に、上司自身が以前は開発者であり、昇進後に上司になった場合には、対立が生じる可能性があります」と Fox 氏は指摘します。

リクルーターソフトウェア開発者は、熟練した労働者が不足しているため、リクルーターやヘッドハンターによる嫌がらせを受けるために積極的に仕事を探す必要がありません。まだ採用担当者の手に落ちていない開発者を見つけるのは非常に難しいでしょう。デビッド・フォックスは、採用担当者のしつこさを特に問題視しています。そして、あなたが仕事を探しているとしても、多くの採用担当者は、無関係な求人を出したり、あなたのプロフィールにまったく当てはまらない仕事を勧めたりする傾向があります。たとえば、あなたがその気はないのに、国の反対側での仕事などです。動く。”

ドキュメントドキュメントがない場合、ソフトウェア開発者は苦情を言います。多すぎる場合は苦情を言いますし、文書作成も自分たちで行わなければならない場合は、彼らは苦情を言います。開発者は、他の人がドキュメント作成タスクを処理する方法について不満を言うことさえあります。 Fox 氏が強調するように、この時点で開発者全員が最終的に同意します。「ソフトウェア開発者は、詳細でよく書かれた正確なドキュメントを望んでいますが、自分たちでそれを行うことは望んでいません。」

会議会議は他の人だけの問題ではなく、ソフトウェア開発者にとっても問題です。特に、まったく不必要で、時間がかかり、非常に退屈な会議の場合はそうです。フォックス氏の説明によれば、「電子メールであるはずだった別の会議を生き延びた」という碑文が刻まれた信心深いアイテムが現在入手可能となっている。

コワーキング スペースアジリティの高まりに伴い、企業、特にソフトウェア開発チームでは、フラットな階層、コラボレーション、チームワークが日常生活の一部になりました。しかし、彼らは特に、オープンプランのオフィスで仕事を管理することが難しい、または不可能であると感じています – 少なくともそれがdevRantの数字から言えます。デビッド・フォックスは次のように説明します。「同僚が話していたり​​、会議に出席できなかったり、電話を無視されたりするなど、気を散らすものが多すぎます。オフィスのコーヒーやその他のアメニティ、あるいはその逆についての苦情もたくさんあります。」

同僚一目瞭然: 誰もが特に大切にしている同僚がいるでしょう。ない。ソフトウェア開発者の場合、同僚から嫌われるのは通常、仕事の質が低いか、完全に抑制されていないエゴのどちらかが原因である、と David Fox 氏は明らかにします。

面接ソフトウェア開発者が仕事を探していて、面接に招待されると、通常、後で文句を言うことがあります。開発者が実際に何をしているのか全く分かりません」とフォックス氏は言います。

エラーとバグソフトウェア開発者は毎日エラーやバグに対処しています。だからこそ、devRant の創設者 Fox 氏は、この問題に関しては開発者たちの考え方が異なると信じています。「他のほとんどの問題は前向きな解決策が見当たりませんが、バグやエラーは修正可能であり、それは良いことだと思います。」

品質保証品質保証 (QA)、または品質保証は、ソフトウェア開発の重要な部分です。それでも、ソフトウェア開発者は、製品マネージャーやプロジェクトマネージャーに対して不満を抱くのと同じように、QA 専門家に対しても不満を抱くことが多いとフォックス氏は言います。 「品質保証は、開発者が製品やプロジェクトを完了したときに、その製品やプロジェクトを手に入れます。そのため、開発者は開発プロセス中にどのようなハードルや回避策を乗り越えなければならなかったのか理解できないことがよくあります。 QA 担当者が開発者に、自分たちで対応できる領域のやり直しを依頼することも定期的に行われているようです。」