API:Client code/Gold standard/de

Die Client-Bibliotheken der Action API, die auf verfügbar sind, ermöglichen es Entwicklern, einfach und intuitiv mit der MediaWiki-API zu interagieren. Die derzeit aufgelisteten Bibliotheken unterscheiden sich erheblich hinsichtlich Möglichkeiten, Entwicklungsstatus und Qualität von Code/Dokumentation. Um es neuen Nutzern der API zu erleichtern, eine Bibliothek zu finden, die ihre Ansprüche erfüllt, führen wir einen "Gold-Standard" ein, der insbesondere qualitativ hochwertige, derzeit gewartete Bibliotheken kennzeichnet. Wir hoffen auch, dass der Standard Entwicklern von Bibliotheken dabei hilft, zu entscheiden, worauf sie ihre Anstrengungen fokussieren, sodass der von ihnen erstellte Code einfach von Experten und neuen Entwicklern genutzt werden kann.

Wir glauben, dass eine gute Client-Bibliothek einfach zu installieren, zu verstehen, zu nutzen, zu debuggen und zu verbessern sein sollte. Dafür ist eine zusätzliche Dokumentation ebenso wichtig wie eleganter Code. Sofern nichts anderes angegeben ist, gehören die Objekte unten zum "Gold-Standard": herausfordernd aber erreichbar. Die Objekte, die als "Platin-Standard" gekennzeichnet sind, zeigen, dass Bibliotheksentwickler weiter gegangen sind und über den "Gold-Standard" hinausgehen, was zu einer außergewöhnlichen Bibliothek führt.

Einfach zu installieren

 * Installationsanleitungen sind korrekt und leicht zu finden
 * Die Bibliothek ist über eine geeignete Paket-Bibliothek (PyPI, CPAN, npm, Maven, rubygems, etc.) als Paket zur Installation verfügbar
 * Platin-Standard: Die Bibliothek ist über Linux-Distributionen als Paket verfügbar

Einfach zu verstehen

 * Gut designt: Macht alle vorgesehenen API-Anrufe mit dem beabsichtigten Abstraktionsgrad verfügbar ohne Redundanzen
 * Platin-Standard: Macht die Wikidata-API verfügbar
 * Gut dokumentiert:
 * Code ist kommentiert und lesbar
 * Dokumentation ist umfassend, genau und leicht zu finden
 * Dokumentation gibt an, mit welchen MediaWiki-Versionen die Bibliothek kompatibel ist
 * Veraltete Funktionen sind eindeutig als solche markiert
 * Platin-Standard: Dokumentation ist für einen neuen Programmierer verständlich
 * Code nutzt Idiome, die für die Sprache, in der die Bibliothek geschrieben ist, angemessen sind

Einfach zu nutzen

 * Hat funktionierende, einfache und gut geschriebene Code-Beispiele für häufige Aufgaben
 * Demonstriert Abfragen
 * Demonstriert Bearbeitungen
 * Geht mit Komplikationen und Eigenheiten der API um, sodass der Nutzer sich nicht darum kümmern muss:
 * Anmelden/Abmelden
 * Cookies
 * Tokens
 * Zur Fortsetzung von Abfragen wird das neue "continue" verwendet, nicht "query-continue"
 * Abfragen über HTTPS umfassen eine Zertifikatprüfung
 * Die höfliche API-Nutzung wird durch Code-Beispiele und sinnvolle Voreinstellungen gefördert
 * gzip-Kompression wird standardmäßig verwendet
 * Beispiele zeigen, wie man einen aussagekräftigen User-Agent-Header erstellt und nutzt (wie in der User-Agent-Richtlinie)
 * Platin-Standard: Generiert eine einzigartige User-Agent-Zeichenkette anhand des angegebenen Namens / der Email-Adresse / des Orts des Repositoriums
 * Efficient usage of API calls
 * Can be used with the most recent stable version of the language it is written in (e.g. Python 3 compatible)

Easy to debug

 * Contains unit tests for the longest and most frequently modified functions in the library
 *  Platinum standard: Unit tests for many code paths exist and are maintained 
 * Terrible hacks/instances of extreme cleverness are clearly marked as such in comments
 * Documentation links to the relevant section/subpage of the API documentation

Easy to improve

 * Library maintainers are responsive and courteous, and foster a thoughtful and inclusive community of developers and users
 *  Platinum standard: Project sets clear expectations for conduct for spaces where project-related interactions occur (mailing list, IRC, repository, issue tracker). It should: 
 *  State desired attitudes and behaviors 
 *  Provide examples of unwelcome and harassing behavior 
 *  Specify how these expectations will be enforced 
 * Pull requests are either accepted or rejected with reason within 3 weeks ( Platinum standard: 3 business days )
 * Issues/bugs are responded to in some manner within 3 weeks (Platinum standard: 3 business days) (but not necessarily fixed)
 * The library is updated and a new version is released within 3 weeks (Platinum standard: 3 business days) when breaking changes are made to the API
 *  Platinum standard: library maintainers contact MediaWiki API maintainers with feedback on the API's design and function 
 * Library specifies the license it is released under