Content deleted Content added
Roger Tag: references removed |
ClueBot NG (talk | contribs) m Reverting possible vandalism by 2407:7000:8820:BD01:2936:AB7A:3867:4254 to version by WikiMacaroons. Report False Positive? Thanks, ClueBot NG. (3748914) (Bot) |
||
Line 152:
On February 19, 2020, [[Akamai Technologies|Akamai]] published their annual “State of the Internet” report, showcasing the growing trend of cybercriminals targeting public API platforms at financial services worldwide. From December 2017 through November 2019, Akamai witnessed 85.42 billion credential violation attacks. About 20%, or 16.55 billion, were against hostnames defined as API endpoints. Of these, 473.5 million have targeted financial services sector organizations.<ref name="VentureBeat">{{Cite web |url=https://venturebeat.com/2020/02/19/akamai-cybercriminals-are-attacking-apis-at-financial-services-firms/ |title=Akamai: Cybercriminals are attacking APIs at financial services firms |last=Takanashi |first=Dean |date=19 February 2020 |website=Venture Beat |access-date=27 February 2020}}</ref>
==Documentation==
API documentation describes what services an API offers and how to use those services, aiming to cover everything a client would need to know for practical purposes.
Restrictions and limitations on how the API can be used are also covered by the documentation. For instance, documentation for an API function could note that its parameters cannot be null, that the function itself is not [[Thread safety|thread safe]],<ref name="MonperrusEichberg11">{{C–ÅÁÈite journal |last1=Monperrus |first1=Martin |last2=Eichberg |first2=Michael |last3=Tekes |first3=Elif |last4=Mezini |first4=Mira |date=3 December 2011 |title=What should developers be aware of? An empirical study on the directives of API documentation |journal=Empirical Software Engineering |volume=17 |issue=6 |pages=703–737 |arxiv=1205.6363 |doi=10.1007/s10664-011-9186-4}}</ref> or that a decrement and cancel protocol averts self-trading.{{Clarify|reason=explanation required|date=February 2018}}▼
Documentation is crucial for the development and maintenance of applications using the API.<ref name="DekelHerbsleb9">{{Cite journal |last1=Dekel |first1=Uri |last2=Herbsleb |first2=James D. |date=May 2009 |title=Improving API Documentation Usability with Knowledge Pushing |journal=Institute for Software Research, School of Computer Science |citeseerx=10.1.1.446.4214}}</ref>
API documentation is traditionally found in documentation files but can also be found in social media such as blogs, forums, and Q&A websites.<ref name="ParninTreude11">{{Cite journal |last1=Parnin |first1=Chris |last2=Treude |first2=Cristoph |date=May 2011 |title=Measuring API Documentation on the Web |url=https://www.xmedo.com/measuring-api-documentation-web/ |journal=Web2SE |pages=25–30 |doi=10.1145/1984701.1984706 |isbn=9781450305952 |access-date=22 July 2016}}</ref>
Traditional documentation files are often presented via a documentation system, such as Javadoc or Pydoc, that has a consistent appearance and structure.
However, the types of content included in the documentation differs from API to API.<ref name="MaalejRobillard12">{{Cite journal |last1=Maalej |first1=Waleed |last2=Robillard |first2=Martin P. |date=April 2012 |title=Patterns of Knowledge in API Reference Documentation |url=https://mobis.informatik.uni-hamburg.de/wp-content/uploads/2013/03/TSE-2012-04-0081.R2_Maalej.pdf |journal=IEEE Transactions on Software Engineering |access-date=22 July 2016}}</ref>
In the interest of clarity, API documentation may include a description of classes and methods in the API as well as "typical usage scenarios, code snippets, design rationales, performance discussions, and contracts", but implementation details of the API services themselves are usually omitted.
▲Restrictions and limitations on how the API can be used are also covered by the documentation. For instance, documentation for an API function could note that its parameters cannot be null, that the function itself is not [[Thread safety|thread safe]],<ref name="MonperrusEichberg11">{{
Because API documentation tends to be comprehensive, it is a challenge for writers to keep the documentation updated and for users to read it carefully, potentially yielding bugs.<ref name="researchgate.net" />
API documentation can be enriched with metadata information like [[Java annotation]]s. This metadata can be used by the compiler, tools, and by the ''run-time'' environment to implement custom behaviors or custom handling.<ref>{{Cite web |url=http://download.oracle.com/javase/1,5.0/docs/guide/language/annotations.html |title=Annotations |publisher=[[Sun Microsystems]] |access-date=2011-09-30 |archive-url=https://web.archive.org/web/20110925021948/http://download.oracle.com/javase/1,5.0/docs/guide/language/annotations.html |archive-date=2011-09-25 |url-status=dead }}.</ref>
It is possible to generate API documentation in a data-driven manner. By observing many programs that use a given API, it is possible to infer the typical usages, as well the required contracts and directives.<ref>{{Cite book |last1=Bruch |first1=Marcel |title=2010 7th IEEE Working Conference on Mining Software Repositories (MSR 2010) |last2=Mezini |first2=Mira |last3=Monperrus |first3=Martin |year=2010 |isbn=978-1-4244-6802-7 |pages=141–150 |chapter=Mining subclassing directives to improve framework reuse |citeseerx=10.1.1.434.15 |doi=10.1109/msr.2010.5463347}}</ref> Then, templates can be used to generate natural language from the mined
==Copyright controversy==
|