Comment créer une nouvelle page dans la Confluence utilisant leur API REST?
J'ai besoin de travail exemple de création d'une nouvelle page wiki dans la confluence à l'aide de l'api rest. Je préfère la nouvelle page sera créée sous espace spécifique et spécifique de la page. J'ai lu leur documentation de l'api et la regarda quelques exemples qu'ils ont eu et continuent à venir à court.
Voici un exemple qu'ils ont sur leur site
curl -u admin:admin -X POST -H 'Content-Type: application/json' -d'{"type":"page","title":"new page","space":{"key":"TST"},"body":{"storage":{"value":"<p>This is a new page</p>","representation":"storage"}}}' http://localhost:8080/confluence/rest/api/content/| python -mjson.tool
J'ai essayé ci-dessus avec mon espace de nom, nouveau titre et a changé l'url de mysite/repos/api/contenu
et retourné le contenu a été fondamentalement html de la page en disant que la page n'existe pas ou si la page existe, mais que vous n'avez pas la permission. J'ai confirmé que j'ai accès à confluence et peut créer de nouveaux wiki à l'aide de mes pouvoirs.
Ce qui est également pas clair, c'est dans l'exemple ci-dessus, comment est-il l'appel de l'api spécifique qui crée la page? Il ne fait pas de sens.
question semblable a été posée sur leur forum, mais pas de réponse raisonnable
https://answers.atlassian.com/questions/149561/simple-confluence-rest-api-usage-what-am-i-missing
(Je suppose que mon objectif final est d'être capable de créer une nouvelle page wiki sur confluence automatiquement) je suis d'accord pour renoncer à la confluence API REST d'autre solution si nécessaire.
Vous devez vous connecter pour publier un commentaire.
De mes soupçons, c'est que vous n'êtes pas à l'aide d'une nouvelle version assez de Confluence. Le RESTE de l'API pour la création d'une nouvelle page a été introduit dans la Confluence 5.5 (qui est sorti de 8 jours). La documentation de l'API est versionné, et vous devriez toujours utiliser la version correspondant à votre Confluent de la libération. Le 5.5 API docs inclure la création d'une page de l'API vous avez besoin, mais les anciennes versions ne le font pas. Vous pouvez changer la version dans l'URL ci-dessus pour obtenir la version de l'API correspondant à votre Confluent de la libération.
Confluence 5.4 et avant aussi utilisé une autre racine, préfixe pour l'API REST (repos/prototype/1/contenu) qui est une raison possible pour obtenir une page introuvable erreur.
L'exemple sur la Atlassian site est également source de confusion car il comprend un extra "/confluence" dans l'URL, vous n'aurez besoin que si Confluence ont été mis en place avec un chemin de contexte. Cela pourrait également entraîner une page ne trouve pas d'erreur si vous utilisez la Confluence 5.5+ (bien que votre post suggère que vous avez déjà corrigé pour cette).
En outre, vous devez dire à la Confluence que vous utilisez la méthode d'authentification de base par l'ajout d'un spécial os_authType paramètre de requête.
L'exemple suivant fonctionne pour moi sur Confluence 5.5 (ne pas oublier de changer le port et la touche espace selon le cas).
Pour la sécurité, j'ai également ajouté le type de contenu approprié à la
Accept
en-tête, bien que cela ne semble pas être nécessaire en pratique.Pour répondre à votre dernière question, l'API spécifique qui crée la page est déterminée par l'URL elle-même et la méthode de la requête. Par exemple, l'exécution d'un GET sur "/repos/api/contenu" va chercher une page existante (compte tenu de la requête appropriée de paramètres), tout en effectuant un POST crée une nouvelle page.
MODIFIÉES AFIN D'AJOUTER:
Voir aussi mon commentaire ci-dessous pour savoir comment créer une page comme un enfant à une autre page, plutôt que de simplement au niveau supérieur d'un espace.
curl -v -u admin:admin -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' -d'{"type":"page","ancestors":[{"type":"page","id":1048582}],"title":"third new child page","space":{"key":"ATTACH"},"body":{"storage":{"value":"<p>This is a new page</p>","representation":"storage"}}}' "http://localhost:8090/rest/api/content/?os_authType=basic"
Pas d'api REST, mais un travail autour de j'ai mis en place.
Essayez ceci:
Pour déplacer une page comme page enfant
Pour déplacer une page de haut niveau de la page dans l'espace