私は、定義された親の子として特定のスペースにページを作成したいという事実に直面しています。Confluence Rest API:スペースと親でページを作成できますか?
これらの方法でこれを行う可能性はありますか? まだ見つかりませんでした。
ありがとうございました! :)
私は、定義された親の子として特定のスペースにページを作成したいという事実に直面しています。Confluence Rest API:スペースと親でページを作成できますか?
これらの方法でこれを行う可能性はありますか? まだ見つかりませんでした。
ありがとうございました! :)
のドキュメントを見てください: Create a new page as a child of another page
をこれはカールですが、これは、REST APIです
Create a new page as a child of another page
C#で類似しているべきです。 REST APIはオープンスタンダードに基づいているため、任意のWeb開発言語を使用してAPIにアクセスできます。
(.NET 4.5から利用できる上):C#ので
、次のいずれかのオプションを使用することができますHttpClient
クラスを使用することを強くお勧めします。これは、以前の2つよりもはるかに優れている(ユーザビリティの観点から)ためです。
あなたが必要とするすべての部分:
のcreatePage機能
のHTTP POST機能
ダムクラスのサンプルJSONが資格にします。
サンプルJSON &ベースURL
internal static string createAPage(string space, string title, string body, string objectType, int ancestorId = -1)
{
string json = string.Empty;
try
{
CreateContentWithParentJson createContentWithParentJson = JsonConvert.DeserializeObject<CreateContentWithParentJson>(_jsonCreatePageWithParentSample);
createContentWithParentJson.space.key = space;
createContentWithParentJson.title = title;
body = body.Replace("&", "&");
createContentWithParentJson.body.storage.value = "<p>" + body + "</p>";
Ancestor a = new Ancestor();
a.id = ancestorId;
createContentWithParentJson.ancestors = new List<Ancestor>();
createContentWithParentJson.ancestors.Add(a);
json = JsonConvert.SerializeObject(createContentWithParentJson, Utils.getJsonSettings());
}
catch (Exception) { // handle exception
}
return Utils.contentPost(json, _baseUrl);
}
internal static string contentPost(string postData, string url, string method = "POST")
{
string encodedCred = System.Convert.ToBase64String(System.Text.Encoding.GetEncoding("ISO-8859-1").GetBytes(ConfAPI._confUser + ":" + ConfAPI._confPass));
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Headers.Add("Authorization", "Basic " + encodedCred);
request.Headers.Add("X-Atlassian-Token", "no-check");
request.Method = method;
request.Accept = "application/json";
request.ContentType = "application/json";
// request.KeepAlive = false;
if (postData != null)
{
byte[] data = Encoding.UTF8.GetBytes(postData);
request.ContentLength = data.Length;
using (var stream = request.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}
}
WebResponse response;
try
{
response = (HttpWebResponse)request.GetResponse();
}
catch (WebException e)
{
return e.Message + " " + e.StackTrace.ToString();
}
var responsestring = new StreamReader(response.GetResponseStream()).ReadToEnd();
return responsestring;
}
public class CreateContentWithParentJson
{
public string type { get; set; }
public string title { get; set; }
public List<Ancestor> ancestors { get; set; }
public Space space { get; set; }
public Body body { get; set; }
}
internal static string _baseUrl = "http://localhost:8090/rest/api/content";
internal static string _jsonCreatePageWithParentSample = @"{'type':'page','title':'new page', 'ancestors':[{'id':456}], 'space':{'key':'TST'},'body':{'storage':{'value':'<p>This is a new page</p>','representation':'storage'}}}";
の
可能な重複[自分のREST APIを使用してConfluenceの中に新しいページを作成するには?](http://stackoverflow.com/questions/23523705/how-to-create -new-page-in-confluence--rest-rest-apiを使用して) –