APIとは何か?API連携ってどういうこと?図解で仕組みをやさしく解説

API là gì? Connect API là như thế nào? Giải thích dễ hiểu cơ thế API bằng lược đồ minh họa

 

インターネット上で提供されている企業のWebサービスを見ると、必ずと言っていいほど、どこかに「API」という単語が見つかるはずです。しかし、APIとは、あるいはAPI連携とは具体的にどのような仕組みのことを言っているのでしょうか?本稿ではAPIの仕組みやメリットデメリット、代表的なサービスについて、難しい言葉を使わずにやさしく解説していきます。

Khi nhìn vào dịch vụ Web của các công ty được cung cấp trên các trang nền tảng mạng, tôi chắc chắn bạn sẽ bắt gặp từ “API” ở bất cứ đâu. Tuy nhiên, API, hay connect API cụ thể là cấu trúc như thế nào? Trong bài viết này sẽ giải thích dễ hiểu mà không dùng nhiều từ ngữ phức tạp về những service đại diện, điểm tốt và điểm không tốt cũng như cơ chế của API.

 

APIとは? プログラム同士をつなぐ「インターフェース」

 APIとは「アプリケーションプログラミングインターフェース(Application Programming Interface)」の略称です。一言で表すと、ソフトウェアやプログラム、Webサービスの間をつなぐインターフェースのことを指します。

API là? Kết nối giữa các chương trình với nhau (Interface)

API là từ viết tắt của “Application Programming Interface”. Tóm lại, đây là giao diện kết nối giữa phần mềm, chương trình và dịch vụ web.

 

 インターフェースとは、何かしらの「境界面」「接点」のことを指し、異なる2つの事物の間をつなぐという意味を持ちます。たとえばキーボードやマウス、ディスプレイは人間とコンピューターの境界上で使われる「ユーザーインターフェース」の1つとして知られます。また、USBHDMIといった、機械と機械をつなぐコネクターは「ハードウェアインターフェース」と呼ばれます。

Giao diện/Interface sẽ chỉ ra “ranh giới” “điểm tiếp xúc” của cái gì đó và có ý nghĩa kết nối 2 vật khác nhau lại với nhau. Ví dụ, bàn phím, chuột và màn hình được biết đến như là 1 “giao diện người dùng” được sử dụng trên ranh giới giữa con người và máy tính. Ngoài ra, các cổng kết nối máy móc với máy móc như là USB và HDMI sẽ được gọi là “giao diện phần cứng”.

 

 そしてAPIは、主にソフトウェアやプログラム同士をつないでいるインターフェースなのです。

API là giao diện kết nối chủ yếu giữa phần mềm và các chương trình với nhau.

 

 ユーザーがサービスを使う際にAPIの存在を意識することはあまりありません。しかしその裏では、実はAPIは幅広く使われています。

Khi User sử dụng dịch vụ thường không để ý/ý thức đến sự tồn tại của API. Nhưng đằng sau đó thì API thực sự được sử dụng trên diện rộng rãi.

 

 たとえばニュースサイトにGoogleアカウントでログインする際にはグーグルのAPIによってログイン情報が暗号化して認証されています。また、電子マネーで買い物する際には、決済代行サービスのAPIによって電子マネーの決済情報をやり取りされているのです。

Ví dụ, khi bạn login vào một trang tin tức bằng tài khoản Google, thông tin login sẽ  được mã hóa và xác thực bởi API của google. Hơn nữa, khi khi mua đồ theo kiểu thanh toán điện tử, thông tin thanh toán của điện tử được trao đổi nhờ vào API của dịch vụ đại lý thanh toán.

 

API連携の仕組みを詳しく。どうやって異なるものをつなげるのか

 ここで、APIでソフトウェア同士をつなぐこと、つまり「API連携」の仕組みをもう少し掘り下げてみましょう。

Chi tiết cơ cấu connect API. Làm thế nào để kết nối những thứ khác nhau lại với nhau?

Chúng ta hãy thử đào sâu thêm tí nữa về việc kết nối giữa các phần mềm bằng API, hay nói các khác là cơ chế “Connect API”.

 

APIの基本的なプロセスは「リクエスト(要求)」と「レスポンス(応答)」で構成されます。リクエストをするのがAPI利用者で、レスポンスをするのがAPIの提供者。リクエストとレスポンスに関するルールはAPIの提供者が定めます。つまり、何のリクエストに対してどんなレスポンスを返すかということを提供者がAPIの設計段階で考え、実装し、利用可能な状態にします。この設計次第でAPIのリクエストとレスポンスの関係は大きく変わるので、「APIは●●をしてくれるもの」という決まりはありません。

Quy trình cơ bản của API được cấu thành/bao gồm “Request” và Response”. Người sử dụng API sẽ đưa ra request và người cung cấp API đưa ra response. Những quy tắc liên quan đến request và response sẽ được đưa ra bởi người cung cấp API. Tóm lại, request cái gì và response như thế nào sẽ được người cung cấp suy nghĩ ở giai đoạn thiết kế API, triển khai và làm cho nó khả dụng/có thể sử dụng được. Tùy thuộc vào thiết kế này mà quan hệ giữa request và response của API sẽ thay đổi rất lớn, nên không có chuyện “API thực hiện abc gì đấy”.

 

 少し具体的にAPIの利用シーンをイメージしてみましょう。私達はネットショッピングをする際にカード番号を打ち込みますが、番号名前期限セキュリティコードなどの情報が安全性の低いネットショップのサーバに保管されると第三者に悪用される恐れがあります。そこでネットショップでは、カード会社が提供しているAPIが使われています。

Bạn hãy thử hình dung cụ thể hơn về phân cảnh sử dụng của API. Khi mua đồ trên mạng chúng ta sẽ gõ mã số card, nhưng nếu những thông tin như mã số, tên, thời hạn, security code được lưu trữ vào server của shop có độ an toàn thấp rất có khả năng sẽ thứ 3 sẽ dùng nó với mục đích xấu. Vì vậy, API cung cấp bởi các công ty thẻ thường được các shop trực tuyến sử dụng.

 

 ネットショップはAPIを通して「これからお客さまがカード情報を打ち込むから確認してくれ」と要求します。顧客によって打ち込まれた情報はネットショップを通さず、直接カード会社のサーバに届き、情報が確認され、ネットショップ宛に「カードを確認した。決済は完了」という連絡だけが送られます。ネットショップはカード情報を管理することなく決済が確認できるので、顧客は安全に買い物ができるようになり、ショップのサーバ管理コストも最低限に抑えられるというわけです。

Thông qua API, các shop online sẽ yêu cầu “Từ bây giờ khách hàng sẽ nhập thông tin thẻ nên các bạn hãy xác nhận lại nhé”. Thông tin được nhập bởi khách sẽ không đi qua shop online mà sẽ đến trực tiếp server của công ty thẻ, sau khi thông tin được xác nhận sẽ gửi thông báo đến shop online là “Đã xác nhận thẻ. Hoàn thành thanh toán”. Vì các shop online không cần quản lý thông tin thẻ mà vẫn có thể xác nhận thanh toán nên khách hàng có thể mua hàng một cách an toàn, đồng thời chi phí quản lý server của shop cũng được giảm ở mức tối thiểu.

 

 上記例のネットショップのように、自社サービスでAPIを利用するのは簡単です。ルールに沿ってコードを書いて「この情報をくれ」「こういう動作をしてくれ」と要求するだけ。場合によっては利用者を識別するためのIDなどを送ることもありますが、公開されているAPIの多くが「誰にでも使える」状態になっています。使いすぎて利用制限がかかる場合もありますが、APIを使うこと自体はそこまで難しくないのです

Thật dễ dàng khi sử dụng API bằng dịch vụ của chính công ty mình giống như shop online trong ví dụ ở trên. Chỉ cần viết code theo quy định và yêu cầu “Hãy cung cấp cho tôi thông tin này”, “hãy thao tác như thế này”. Tùy thuộc vào trường hợp mà cũng có trường hợp chúng tôi sẽ gửi ID để phân biệt người sử dụng, nhưng đa phần API được công khai dưới dạng “bất cứ ai cũng có thể sử dụng”. Cũng có trường hợp giới hạn sử dụng do lạm dụng quá mức nhưng việc sử dụng API thì không khó đến như thế.

 

 APIの利用プロセスは役所や商店の「窓口」と似ています。APIを通して「何をしてほしいか」を仕様(申込用紙)に沿って記述し、APIの提供元にその要求を送信します。ルールに則って必要事項が書かれていれば、APIを提供するサービスやソフトウェアが要求を処理し、その結果を返答します。

Quy trình sử dụng API cũng giống như “Cửa giao dịch” của cơ quan hành chính hoặc cửa hàng. Thông qua API, bạn sẽ mô tả theo spec “Bạn muốn làm gì”, rồi gửi request đó cho nhà cung cấp của API. Nếu các mục yêu cầu được viết theo quy tắc, thì phần mềm và dịch vụ cung cấp API sẽ xử lý yêu cầu và trả lại kết quả.

 

 APIを利用すれば、自分は何もせずにAPIに要求を送るだけで、「ある種の高度な情報処理や分析が実行するプログラム」さえ作れてしまうのです。

Nếu sử dụng API, bạn thậm chí có thể tạo được “chương trình thực hiện một số loại xử lý và phân tích thông tin nâng cao” mà bản thân không cần phải làm gì cả.

 

 ただ、当たり前ですが、APIの定めた仕様で想定されていないことはできません。これは「問い合わせフォームに項目のないもの」「申請書に記入できないもの」「書式に則っていないもの」が受け付けられないのと同じです。

Tuy nhiên, điều tất nhiên là chúng ta không thể làm gì khi chưa hình dung được theo spec đã chốt của API. Điều này cũng tương đồng với việc không thể nhận được “Các item không có trong form yêu cầu”, “mục không thể ghi vào application form” hay là “mục không tuân theo format”.

 

 最初の段階でAPIの提供者が、サービスの利用範囲を決めているので、それ以外のことはできないようになっています。もし、APIのルールを破って想定されていない使い方をしたり、バグを利用したりすれば、それは不正利用、ハッキングとなる可能性があります。

Ở giai đoạn đầu, người cung cấp API sẽ vạch ra phạm vi sử dụng dịch vụ, ngoài phạm vi này bạn không thể sử dụng thêm bất cứ dịch vụ nào khác. Nếu phá vỡ quy định của API, sử dụng theo cách không như mong muốn, hay nếu lợi dụng bug thì những cái này đều là sử dụng không đúng tuy tắc và có khả năng sẽ bị hack.

 

 一方で、APIを提供するのは簡単ではありません。APIは自社のサービスやプログラムを他人に使わせる仕組みを作るものです。どこまで使わせるか、どうやって使わせるか、どうデータやプログラムの利用に制限をかけ、安全に運用するか。一歩間違えればAPIの不正利用によってデータが流出したり、予期せぬ損害を自他に与えたり、信頼を損なう可能性があります。APIを提供するには慎重なAPIの設計が必要となるのです。

Mặt khác, việc cung cấp API cũng không phải là điều dễ dàng. API là thứ tạo ra cơ chế để người khác sử dụng cho dịch vụ hay chương trình của bạn. Có thể sử dụng tới mức nào, sử dụng như thế nào, làm thế nào để hạn chế sử dụng data và chương trình, có vận hành an toàn không,… . Nếu sai một bước thôi thì data sẽ bị rò rỉ do sử dụng sai, gây ra những thiệt hại không thể nào đoán được, và có thể gây mất lòng tin. Để cung cấp API thì cần có những thiết kế API chỉnh chu.