API: Difference between revisions

Content deleted Content added
top: Remove uncited claim from intro not supported by any article text
Design: Rm per WP:EL. Wikipedia citations are not a place to promote your WP:PRIMARY research
Line 126:
==Design==
The design of an API has significant impact on its usage.<ref name="Clarke4" /> The principle of [[information hiding]] describes the role of programming interfaces as enabling [[modular programming]] by hiding the implementation details of the modules so that users of modules need not understand the complexities inside the modules.<ref name="Parnas72">{{Cite journal |last=Parnas |first=D.L. |date=1972 |title=On the Criteria To Be Used in Decomposing Systems into Modules |url=https://www.win.tue.nl/~wstomv/edu/2ip30/references/criteria_for_modularization.pdf |journal=Communications of the ACM |volume=15 |issue=12 |pages=1053–1058 |doi=10.1145/361598.361623}}</ref> Thus, the design of an API attempts to provide only the tools a user would expect.<ref name="Clarke4" /> The design of programming interfaces represents an important part of [[software architecture]], the organization of a complex piece of software.<ref name="GarlanShaw94">{{Cite journal |last1=Garlan |first1=David |last2=Shaw |first2=Mary |date=January 1994 |title=An Introduction to Software Architecture |url=https://www.cs.cmu.edu/afs/cs/project/able/ftp/intro_softarch/intro_softarch.pdf |journal=Advances in Software Engineering and Knowledge Engineering |volume=1 |access-date=8 August 2016}}</ref>
 
Several authors have created recommendations for how to design APIs, such as [[Joshua Bloch]],<ref>{{cite web
| last = Bloch
| first = Josh
| title = How to design a good API and why it matters
| url = http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/32713.pdf}}</ref> Kin Lane,<ref>{{Cite web |url=http://pages.3scale.net/rs/516-GHI-083/images/api-provider-guide-api-design.pdf |title=The Industry Guide to API Design |last=Lane |first=Kin |date=2016-03-14 |publisher=Kin Lane via 3scale |url-status=dead |archive-url=https://web.archive.org/web/20160315040538/http://pages.3scale.net/rs/516-GHI-083/images/api-provider-guide-api-design.pdf |archive-date=2016-03-15 |access-date=2016-03-14}}</ref> and Michi Henning.<ref>{{cite web
| last = Henning
| first = Michi
| url = http://queue.acm.org/detail.cfm?id=1255422
| title = API: Design Matters}}</ref>
Patterns for the design and evolution of remote APIs are covered in a series of [[EuroPLoP]] papers.<ref>{{cite web
| last = Zimmermann, Olaf
| url = https://dl.acm.org/citation.cfm?id=3147734
| title = Interface Representation Patterns: Crafting and Consuming Message-Based Remote APIs}}</ref><ref>{{cite web
| last = Stocker, Mirko
| url = https://dl.acm.org/citation.cfm?id=3282319
| title = Interface Quality Patterns: Communicating and Improving the Quality of Microservices APIs}}</ref>
 
==Release policies==