122 votes

Création de la Documentation API grand : Outils et Techniques

Je suis chargé de créer un service web qui va être utilisé par plusieurs développeurs utilisant différentes plates-formes, travaillant pour des sociétés différentes, et ayant largement différents niveaux de compétence. En tant que tel, je voudrais créer de la documentation pour ce service web API qui est à la fois complet et très facile à comprendre. Même si je suis sûr que c'est un objectif noble que tous les projets de documentation tenter d'atteindre, je n'ai pas trouvé le meilleur ensemble d'outils et/ou des flux de travail pour aider mon projet de vous y rendre.

Quels sont les outils et les techniques que vous trouvez les plus utiles dans la création de grands documentation de l'API?

Trouvez-vous l'auto-production de la documentation des outils suffisants pour fournir à l'utilisateur final avec toutes les informations dont ils ont besoin pour utiliser vos services?

Avez-vous trouver sur le Wiki des outils faciles et assez rapides pour maintenir à jour la documentation de votre API?

Avez-vous constaté des techniques ou des outils qui fournissent le "meilleur des deux mondes" - automatisation et la flexibilité? N'importe quel outils qui simplifient le processus de documentation de plusieurs versions d'une API?

93voto

Uri Points 50687

J'ai fait de mon Tél. D. à la documentation de l'API en Java. Les services Web sont évidemment différentes, mais je crois que certaines conclusions sont mondiaux.

Tout d'abord, vous devez accepter le fait que vous avez deux "classes" de lecteurs. Une petite classe seraient les personnes qui ne l'compléter la lecture par le biais de chaque fonction. Comme avec Java, vous ne voulez que votre doc API pour chaque "fonction" pour être parfaitement spécifié. Vous ne voulez pas que vos utilisateurs (ou les forums sur internet) à deviner. Malheureusement, cette classe est assez petite, et se produit souvent avec la mission critique des clients ou avec des organisé des revues de code.

La forme la plus commune de la documentation de l'API utilisateur est le "je veux juste faire les choses" type de personne. Il (ou elle) a une notion de ce qu'ils veulent accomplir. Ils ont aussi une idée de l'endroit où le trouver, disons qu'ils ont trouvé votre fonction. C'est là que commence le problème: ils ne sont pas vraiment envie de lire la documentation. Maintenant, supposons que votre appel a cinq paramètres, quatre évident, mais on a une mise en garde (par exemple, "envoyer seulement une session ouverte"). Si vous allez par le biais de la liste de paramètres et d'indiquer chaque, ils vont se fatigue et de lait écrémé et de ne pas remarquer la chose la plus critique. Je ne peux pas insister assez sur ce point - les gens vont pas du tout l'avis de quelque chose qui regarde dans le visage. Cela devient encore plus difficile s'ils estiment qu'ils comprennent pleinement la fonction, même si elles ne se donnent la peine de lire la documentation, ils seront probablement - le sauter. J'ai vu des personnes à qui il manque évident de mises en garde sur les méthodes avec deux phrases de la documentation.

Voici donc ce que vous pouvez faire:

  1. Supposons que la plupart des utilisateurs ne sera pas réellement de lire la documentation des fonctions qu'ils appellent. En fait, la plus intuitive de votre API est, moins les chances sont que quelqu'un aurait lu la documentation. Tout le monde serait d'en lire d'une fonction avec un nom étrange et 20 paramètres. Mais si vous écrivez un vraiment simple API avec une mauvaise mise en garde, vous courez le risque de ne jamais être lu. la seule solution ici (j'ai quelques pour Java, mais pas pour le web) est pour éviter les surprises.

  2. Lorsque vous écrivez votre pleine et complète de l'API, explicitement en évidence la non-triviale bits (je peux vous montrer l'ensemble de la taxonomie de ce qui est surprenant dans Java, beaucoup traduit). Mieux encore, les trois personnes de regarder la documentation et de ramasser les choses qui ne sont pas intuitifs. Si vous ne pouvez pas le facteur de sortir de l'API, les mettre en évidence.

Enfin (et le crédit ici est de Jeff Stylos qui a également fait son doctor sur Api): Fournir des recettes pour certaines opérations (même en tant que distinct de la page web), et envisager de créer des "espaces réservés" dans la documentation de texte pour les méthodes qui ne font pas partie de l'API, mais les utilisateurs concievably souhaitez. Par exemple, si le nombre d'utilisateurs qui veulent faire Z, mais la façon de le faire dans votre API est de faire X, puis Y, puis ajouter à la documentation d'un "Z" de l'espace réservé, et leur dire précisément à l'appel X et Y.

33voto

BobMcGee Points 6721

Un couple de techniques de documentation, j'ai appris à la dure:

  • Diagrammes syntaxiques (en particulier le chemin de fer diagrammes) de fournir un très clair, lisible façon de décrire la syntaxe des commandes et des options.
  • Toujours prévoir au moins un exemple pour chaque fonction/concept que vous utilisez. De préférence, incluent une utilisation simple et complexe.
  • Utiliser le style de la Pyramide Inversée style d'écriture -- fournir les informations les plus importantes en premier, puis progressivement de moins en moins important! Cela permet à l'utilisateur de choisir, à quelle distance de lecture basée sur les détails dont ils ont besoin. S'applique à l'ensemble de la documentation de trop -- donner des concepts dans la première section, et d'enregistrer les détails précis jusqu'à la fin.
  • Des tutoriels ou des échantillons sont essentiels, et ne doit être ni banale, ni trop complexe!
  • Ne PAS forcer les utilisateurs à apprendre à votre propre système de crochets, accolades, crochets et en gras/italique/soulignant/espacement pour lire vos documents. Oui, vous devriez avoir un système cohérent, mais il devrait suivre l'une des conventions communes, ou, de préférence, utilisez la syntaxe des schémas où c'est possible.

16voto

Alex Reisner Points 10026

Il y A quelques semaines, j'ai proposé Un Standard pour Ouvrir le Code Source de la Documentation qui donne quelques lâche lignes directrices pour la documentation de code source ouvert. Jacob Kaplan-Moss a également écrit une série d'articles sur le sujet. En bref, je crois que la plupart des Api peut être bien documenté avec les sections suivantes:

  1. Ce que c'est et pourquoi vous pourriez vouloir utiliser
  2. Comment télécharger/acheter, d'installer et de le configurer
  3. Comment commencer avec elle (un tutoriel)
  4. Comment faire pour faire des choses plus avancées (topique guides)
  5. La documentation de l'API (auto-générée)

Ces sections ne peut pas être publié dans le même endroit (ils peuvent être sur des sites web), ou créés avec les mêmes outils (wiki, auto-générateur de doc, etc), mais chaque article devrait être directement accessibles au moyen de liens de tous les autres section (il devrait y avoir une table des matières en haut de chaque source). Cela vous permet d'utiliser l'outil le plus approprié pour chaque section de la documentation et toujours l'adresse de tous les domaines pertinents.

Je pense qu'un multi-approche de l'outil comme ceci est nécessaire parce que:

  • auto-généré docs tenir au courant de l'API, mais sont inutiles pour les débutants
  • les wikis obtenir l'implication de la communauté mais ne peut pas maintenir en place avec de fréquents changements de l'API
  • Les fichiers README sont trop statique

Encore une fois, tant que chaque article est accessible à partir de chaque autre article, je pense que l'utilisation de multiples outils/sites est la meilleure façon de documenter la plupart du temps.

11voto

bta Points 22525

D'accord avec les sentiments de plusieurs affiches, de nombreux utilisateurs ne lisent pas la documentation. Dans mes expériences, il y a trois méthodes de documentation qui, lorsqu'ils sont utilisés ensemble, à en faire un outil puissant et utile.

Couche 1: L'Auto-Documentation Du Code Autant que possible, faire de votre API nécessitent que peu de documentation que possible. Suivre (et de publier) des conventions de nommage de vos fonctions, les paramètres et les types de données qui font leur but évident. Le meilleur de la documentation est la documentation qui n'est pas nécessaire.

Couche 2: Soluces / Exemple De Code Alors que beaucoup de gens ne sera pas lu par le biais de la documentation de l'API, de la lecture à travers des exemples de code est généralement considéré comme moins pénible (et pour certains, plus utile). Créer certains simples et d'exemples d'utilisation de votre API et de les publier séparément à partir de votre API docs. Couvrir autant de la commune de scénarios d'utilisation que possible. Tout cela ne peut pas donner aux utilisateurs le même degré de connaissance que l'apprentissage de l'API, il aura au moins donner de nombreux utilisateurs un point de départ. Même s'ils se contentent de copier-coller et des exemples de code et l'utiliser comme un squelette pour leur propre, ils seront au départ, avec la connaissance de code de travail et vous permettra de réduire le nombre de "débutants" questions et demandes de soutien que vous recevez.

Couche 3: Détaillée, Toujours-Mise À Jour De La Documentation Si beaucoup de gens le lire ou pas, il est toujours important d'avoir une description détaillée de l'ensemble de la documentation disponible. Pour ce faire, je préfère utiliser le document générateurs comme Doxygen. Cela fonctionne particulièrement mieux si vous avez une sorte de processus de génération automatique. Pour notre projet, nous avons un serveur qui ne les nightly builds et aussi re-génère la documentation du projet, tous les soirs. De cette façon, tout le monde peut voir les plus up-to-date docs quand ils les afficher sur le web.

Document générateurs de donner plusieurs avantages. Tout d'abord, il est facile de garder votre documentation à jour à tout moment. Depuis les générateurs d'utiliser des commentaires et notation dans le code source pour créer leur sortie, à l'aide du document générateurs aussi encourage les développeurs à fond et bien documenter son code (de cette façon, la documentation est à la source et en externe docs, et vous n'avez qu'à l'écrire une fois). Si votre projet contient plusieurs branches, ou vous avez des développeurs qui travaillent sur plusieurs versions différentes de votre code, un document générateur permet de créer de la documentation pour quelle que soit la version du code source qui est utilisé. Aussi, la génération automatique de la documentation ne nécessite aucun effort supplémentaire pour sauvegarder ou archiver (car il peut être re-créé à partir du code source qui vous maintiennent dans un référentiel de contrôle de version, non?).

Dans mes expériences, en offrant à ces trois couches de la documentation donne de meilleurs résultats. Ceux qui veulent lire des docs et d'apprendre l'API peut le faire, et ceux qui ne peuvent s'en sortir assez bien sans le faire. De votre point de vue, cette méthode requiert un minimum d'efforts. La première couche est quelque chose que beaucoup de projets de logiciels le font déjà. La deuxième couche est habituellement le cas dans la forme de la copie des sections de code que vous avez déjà écrit, en simplifiant, et en la publiant sur un site web ou un wiki. La troisième couche peut nécessiter un peu de travail pour le re-formater les commentaires existants pour suivre les conventions utilisées par votre générateur de documentation; cependant, Doxygen (et probablement d'autres) peut générer une assez bonne série de docs, même sans ajout de Doxygen-format de commentaires.

7voto

timday Points 14860

Quelques choses à considérer:

Quelle que soit la route que vous prenez, assurez-vous que lorsque vous relâchez la version x.y de le logiciel, vous pouvez également publier un versionnées x.y de la documentation. La plupart wiki approches fondées sur la juste voie de la tête et devient rapidement inutile pour quelqu'un coincé de travail avec une ancienne version de votre API (ok c'est peut-être moins de problème si vous êtes un webservice et juste aller pour les forcer tous les utilisateurs à la mise à niveau). Vous voulez encourager les gens à envoyer des rapports de bugs à l'encontre de la documentation (et de la documentation va contenir des erreurs) tout aussi facilement comme ils vont soumettre le logiciel lui-même, et de suivi de ces modifications dans votre BTS/contrôle de version, comme vous le feriez un bug logiciel. Là encore, un problème avec la documentation wiki semble que même si vous donner à des utilisateurs finaux pour le modifier, ils ne se sentent pas qualifiés... et personne ne s'y soumet bugs à l'encontre de la documentation wiki non plus, donc les erreurs ne sont pas corrigés.

Fournir une illustration de travail exemples de code (et tester les exemples de code dans le cadre de votre construction et de test du système). La plupart des devs vont d'abord être beaucoup plus intéressés à ceux de la fonction par fonction API descriptions, et beaucoup ne seront jamais chercher plus loin si les échantillons sont de bonne qualité.

Si vous êtes l'hôte de la documentation en ligne, l'utilisation des outils d'analyse web pour voir ce que les gens lisent. De faire des efforts dans les trucs que les gens trouvent utile.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X