Difference between revisions of "API"

From Freephile Wiki
Jump to navigation Jump to search
(Adds API Sandbox links)
(links to WikiApiary)
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
Commentary and examples of using the APIs (Application Programming Interface) for software like [http://wiki.civicrm.org/confluence/display/CRMDOC/Using+the+API CiviCRM], [[MediaWiki]], Drupal and web services.  Both API documentation and API tools. OS and Internet API references.
+
Commentary and examples of using the <abbr title="Application Programming Interface">API</abbr>s (Application Programming Interface) for software like [http://wiki.civicrm.org/confluence/display/CRMDOC/Using+the+API CiviCRM], [[MediaWiki]], Drupal and web services.  Both API documentation and API tools. OS and Internet API references.
  
 
[[wp:ApplicationProgrammingInterface|Application Programming Interface]] ([[wp:API|API]]) is the information about the exposed or 'public' variables, methods and objects or classes that a system makes available to the developer who wishes to interface with the system programmatically.  If you make an API, documenting the API is a critical software development function.  In documentation terms, the API must almost be treated like a separate piece of software within or "attached" to the main program.
 
[[wp:ApplicationProgrammingInterface|Application Programming Interface]] ([[wp:API|API]]) is the information about the exposed or 'public' variables, methods and objects or classes that a system makes available to the developer who wishes to interface with the system programmatically.  If you make an API, documenting the API is a critical software development function.  In documentation terms, the API must almost be treated like a separate piece of software within or "attached" to the main program.
Line 13: Line 13:
  
 
== MediaWiki API ==
 
== MediaWiki API ==
MediaWiki has a strong '''action''' API (also called the web service API) which has it's endpoint at api.php. See the docs at https://www.mediawiki.org/wiki/API:Main_page 
+
An example of the MediaWiki API in use is at the "[https://freephile.org/wikireport/index.php Wiki Report]" project.  Another very interesting example is the [https://wikiapiary.com/wiki/Newburyport_GNUs Wiki Apiary] (clever name!)
 
 
Since MW 1.27, there is also a SpecialPage [[mw:Special:ApiSandbox|Special:ApiSandbox]] [https://demo.qualitybox.us/wiki/Special:ApiSandbox Demo site] for interacting with the API - just like the API explorer for CiviCRM. (previously it was an extension)
 
 
 
An example of the MediaWiki API in use is at the "[https://freephile.org/wikireport/index.php Wiki Report]" project.  Another very interesting example is the [https://wikiapiary.com/wiki/Freephile_Wiki Wiki Apiary] (clever name!)
 
 
 
Similarly, there is a [[wp:Module:Sandbox|Module:Sandbox]] for testing Lua scripts
 
 
 
===Example Questions ===
 
Here are some example requests to the API
 
# https://freephile.org/w/api.php?action=query&meta=siteinfo&siprop=extensions With no 'format' argument, you will get a "pretty" HTML output that you can read in your browser.
 
# https://freephile.org/w/api.php?action=query&meta=siteinfo&siprop=extensions&format=json With *json* explicitly requested as the format, you can get values suitable for actual programming.
 
 
 
== Developer Tools ==
 
Among other tools, you're going to need to look at HTTP requests and responses to develop web services using APIs.  So, check out tools like [[Wireshark]] (https://www.wireshark.org/),  the [https://developer.mozilla.org/en-US/docs/Tools/Network_Monitor Network Monitor]<ref>The "Live HTTP Headers" add-on still exists, but that is no longer neccessary given the development of the core features of the in-browser developer tools</ref> in [https://developer.mozilla.org/en-US/docs/Tools Developer Tools] for [[Firefox]], or [https://developer.chrome.com/devtools Chrome Developer Tools]
 
 
 
== Integrators ==
 
Companies like [https://platform.ifttt.com/docs IFTTT] (If This Then That) and [https://www.crunchbase.com/organization/zapier#/entity Zapier] offer API integrations so that you can tie together applications via their APIs without any coding.
 
 
 
{{References}}
 
  
 
[[Category:Applications]]
 
[[Category:Applications]]

Revision as of 16:03, 7 August 2015

Commentary and examples of using the APIs (Application Programming Interface) for software like CiviCRM, MediaWiki, Drupal and web services. Both API documentation and API tools. OS and Internet API references.

Application Programming Interface (API) is the information about the exposed or 'public' variables, methods and objects or classes that a system makes available to the developer who wishes to interface with the system programmatically. If you make an API, documenting the API is a critical software development function. In documentation terms, the API must almost be treated like a separate piece of software within or "attached" to the main program.

Programming APIs[edit | edit source]

SWIG wp:Swig (Executive Summary) helps application developers create an API. Several open source projects leverage SWIG, such as Subversion, wxPython and wxWindows. In turn, other developers can enhance these generic APIs to customize them for a particular programming language. For example Python developers can use pySVN while work is underway to expand the PHP interface. See more in the Subversion manual http://svnbook.red-bean.com/nightly/en/svn-book.html#svn.developer.usingapi

Resources[edit | edit source]

  • http://gotapi.com publishes several API references for everything from HTML and CSS to DocBook and Drupal. This organized list of API references also features fast, as-you-type search.
  • Some other documentation resources:

MediaWiki API[edit | edit source]

An example of the MediaWiki API in use is at the "Wiki Report" project. Another very interesting example is the Wiki Apiary (clever name!)