api文件是什麼 在 大象中醫 Youtube 的最佳貼文
api文件是什麼 在 大象中醫 Youtube 的最佳貼文
api文件是什麼 在 pages_manage_cta - 圖形API - 文件 的推薦與評價
pages_manage_cta 權限允許您的應用程式在用於管理Facebook 粉絲專頁行動呼籲按鈕的端點上,執行POST 和DELETE 功能。此權限的許可用途是提供API 存取來管理您所掌管之 ... ... <看更多>
api文件是什麼 在 API Blueprint 學習筆記 的推薦與評價
Api Buleprint 是一種markdown,主要的用途是撰寫Api 文件但是大多數(包含官方網站)的教學,總都沒有把文法和Render 結果貼在一起看(至少是預設的 ... ... <看更多>
api文件是什麼 在 Re: [問題] api是什麼? - 看板C_and_CPP - 批踢踢實業坊 的推薦與評價
在這個版談 Java 會不會被桶?
總之,在開始探討 API 前,我們先來閱讀這篇文章:
API 是否應被視為「著作」?
對於 Java 的使用,Oracle 與 Google 打了好幾年的官司,兩者有
侵權法律糾紛,遲遲未解,其中,API 是否有版權成了關鍵
文 / 王建興
https://www.ithome.com.tw/voice/97361
--
看完上文後,應該對 API 有一個模糊的概念了。
接下來我要開始談 Google vs Oracle (Sun) 的 Java API 之爭。
Google 早期在發展 Android 時,直接選用了 Java 做為開發語言,
這是眾所皆知的事情,但問題是 Java (或其他語言) 不可能脫離
Standard Library 開發。例如在 C 語言中,初學者想印出 "Hello,
World" 字串,通常都是呼叫 printf() 或 puts() 函數,兩者皆
定義於 C Standard Library 中。這兩個函數於不同系統中由不同
runtime library 提供,在 Linux 中最常見的便是 glibc 了,但
其實還有 uClibc, musl 等選擇。BSD (Unix) 系統多使用 libc。
所以 printf, puts 這類函數在不同作業系統上可能根本是不同的
兩個函數。那麼如果不透過 C Standard Library 印出字元要怎麼
做呢?首先你要知道其實你寫的程式根本沒有對螢幕的存取權。唯
一印出字元的方法是告訴你的作業系統你要印出這個字元,在多數
系統中是透過 software interrupt 轉移給 kernel 去做事的。聽
不懂沒關係,反正這一段的重點是在「library 是可以被替換的」
這件事上。
C Standard Library 實際上是 C 語言的一部份,定義在 ISO 文
件裡,所以你可以說 API 是寫在語言定義裡的,但函式的實作卻
不是。而 Java 的情況是,Sun 開發的 Java Platform Standard
Edition (J2SE) 提供了絕大多數 Java 開發者會用到的功能,例
如 System.out.printf()。實作 J2SE API 的函式庫稱為 Java
Class Library。與 C 一樣的情況,你可以選擇 Oracle (Sun) 開
發的 JDK (包含了 JVM 與 JCL),或是改用其他函式庫,例如
GNU Classpath, Apache Harmony 與 OpenJDK。其中 Google 的
Android 使用了客製化的 Apache Harmony (後來改用 OpenJDK)。
那為什麼 Oracle 要控告 Google 侵犯它的 J2SE API 著作權呢?
因為 Google 只取了 J2SE API 的一部份,不是全部,導致 J2SE
程式實際上不相容 Android。所以 Google 實際上是將 J2SE 的
API 再製並修改,扼殺了 J2SE 在 Android 平台上使用的可能性。
其實 Sun 有一個專門為行動裝置設計的 Java 版本,叫做 J2ME,
例如早期 Nokia 與 SonyErisson 的手機遊戲及應用皆是 J2ME,
但不管 J2SE 還是 J2ME 都不能跑在 Android上。要正確地形容
Android 與 Java 的關係,應該是「Android SDK 採用 Java 做為
其開發語言」。所以 Android SDK 中包含了一套從 J2SE 抄來的
API 供 Android 開發者參考,也因此雖然 Android 程式開發時使
用 JDK (Java SE Development Kit),但真正在 Android 裝置上
跑的是 Dalvik 虛擬機與一個客製化的 Apache Harmony 函式庫(
後來被 Android Runtime 與 OpenJDK 取代)。
所以 API 是由函式庫作者提供給你「如何使用我的函式庫」的參
考,或是像程式語言的 standard library 一樣,由一個組織統一
定義 API,提供函式庫作者參考開發,也給程式開發者參考。所以
如果你寫了一個函式庫,並把 API 公開,即使你享有該函式庫著
作權,你卻不能阻止 Google 把你的 API 抄去作成另一個東西。(笑)
最後,API 已經不僅僅是指函式庫定義了,只要是系統中兩個不同
部分(可以是同一個或不同軟體)溝通的參考通通都叫 API。例如
一個 client-server 架構的系統,client 去呼叫 server 上預存
的程式,這個過程我們稱為 remote procedure call,而如何建立
RPC (例如執行哪個程式,給予甚麼參數) 也是一種 API。現在最流
型的 client-server 架構當屬 HTTP,也就是 web,例如 RESTful
API, JSON API 等等名詞一大堆,或是甚麼 Common Object Request
Broker Architecture,Java Remote Method Invocation,通通都
定義了一套 API 讓不同語言寫成的各種應用程式透過相容的 API
交換資料。上面提到的 C Standard Library、J2SE 甚至也可以用
不是 C 或 Java 的語言開發(不過這牽扯到 ABI 就是了)。本質
上 library 與你的程式也是不同的軟體,就算你今天寫一個軟體是
自己寫爽的,沒打算給別人用,你在開發過程中也可以自己定義一
套 API,讓你在各個不同部分呼叫對方時有一個參考可以看。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.117.198.141
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1497095755.A.CBF.html
... <看更多>