Redmine/REST
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
// 下階層用テンプレート
#topicpath
----
//ここにコンテンツを記述します。
#contents
RedmineにはデータにアクセスするためのREST APIが備わってい...
[[Rest api - Redmine>http://www.redmine.org/projects/redm...
RedmineのWikiを解析したくって、これを使ってみました。
ちなみに上記のサイトによると、WikiへアクセスするREST API...
**やってみる [#db66f4fa]
REST APIへアクセスするライブラリとして [[Jersey>https://j...
JerseyはJavaでRESTfullなAPIにアクセスするためのライブラリ...
**プロジェクトの作成 [#b479fe39]
いろいろ準備するのは大変なのでMavenでプロジェクトをつくる...
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 ht...
<modelVersion>4.0.0</modelVersion>
<groupId>nu.mine.kino</groupId>
<artifactId>JerseyExamples</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-core</artifactId>
<version>1.17.1</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-client</artifactId>
<version>1.17.1</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
</dependencies>
</project>
**まずはIndexをとる [#w666968f]
Wikiページの一覧を取得するREST APIは http://www.redmine.o...
によると
GET /projects/foo/wiki/index.xml
や
GET /projects/foo/wiki/index.json
だそうです。Jerseyでアクセスしてみます。
@Test
public void wikiIndex() {
String url = redmineHost + "projects/" + projectKey
+ "/wiki/index.json?key=" + apiAccessKey;
Client client = Client.create();
WebResource resource = client.resource(url);
ClientResponse getResponse = resource.get(ClientR...
String responseStr = getResponse.getEntity(String...
System.out.println(responseStr);
}
結果は以下の通り。
{ "wiki_pages": [
{
"created_on": "2013-06-15T01:37:35Z",
"title": "Wiki",
"updated_on": "2013-06-15T10:37:35+09:00",
"version": 1
}
]}
「Wiki」というタイトルのページが存在することが分かりまし...
**タイトルを指定してWikiページを取得する [#oac658de]
Wikiページの一覧を取得するREST APIは http://www.redmine.o...
によると
GET /projects/foo/wiki/[title].xml
や
GET /projects/foo/wiki/[title].json
だそうです。Jerseyでアクセスしてみます。
@Test
public void wikiDetail() {
String title = "Wiki";
String url = redmineHost + "projects/" + projectK...
+ ".json?key=" + apiAccessKey;
Client client = Client.create();
WebResource resource = client.resource(url);
ClientResponse getResponse = resource.get(ClientR...
String responseStr = getResponse.getEntity(String...
System.out.println(responseStr);
}
結果は以下の通り。
{"wiki_page": {
"author": {
"id": 3,
"name": "hogehoge"
},
"comments": "",
"created_on": "2013-06-15T01:37:35Z",
"text": "h1. Wiki",
"title": "Wiki",
"updated_on": "2013-06-15T01:37:35Z",
"version": 1
}}
"text" のところがWikiの本文です。属性情報も含めて簡単にコ...
**Wikiを更新する [#dbea1fc6]
つぎにWikiを新規作成・更新してみます。Jerseyでデータをア...
ちなみに http://www.redmine.org/projects/redmine/wiki/Res...
PUT /projects/foo/wiki/UsersGuide.xml
<?xml version="1.0"?>
<wiki_page>
<text>Example</text>
<comments>Typo</comments>
</wiki_page>
のようにWikiの情報をxmlでHTTP PUTするAPIになっています。...
-[[Jersey と Apache Tomcat を使って RESTful な Web サービ...
このページを見た感じだと、JerseyでデータをPutするには
@XmlRootElement(name = "wiki_page")
public class WikiPage implements Serializable {
private String text;
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
}
このようにAnnotationされたオブジェクトを使って下記のよう...
@Test
public void wikiUpdate() throws UnsupportedEncodingEx...
WikiPage wikiPage = new WikiPage();
wikiPage.setText("updte text");
String title = "NewWiki"; // HTTP Putはいまのとこ...
String url = redmineHost + "projects/" + projectK...
+ URLEncoder.encode(title, "UTF-8") + ".x...
+ apiAccessKey;
Client c = Client.create();
WebResource r = c.resource(url);
ClientResponse response = r.accept(MediaType.APPL...
ClientResponse.class, wikiPage);
}
**関連リンク [#xd929836]
-[[[Examples] Index of /trunk/JerseyExamples>http://www.m...
-[[Rest api - Redmine>http://www.redmine.org/projects/red...
[[Jerseyで、Restのファイルアップロード - クロノスの雪山と...
-[[HTTPクライアントとして使うjersey-client - Akira Koyasu...
-[[Jersey と Apache Tomcat を使って RESTful な Web サービ...
-[[Jersey>https://jersey.java.net/]]
-[[JSON整形サービス>http://www.ctrlshift.net/jsonprettypr...
-[[maven - How do I migrate from Jersey 1.0 to Jersey 2.0...
----
この記事は
#vote(おもしろかった,そうでもない)
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}
終了行:
// 下階層用テンプレート
#topicpath
----
//ここにコンテンツを記述します。
#contents
RedmineにはデータにアクセスするためのREST APIが備わってい...
[[Rest api - Redmine>http://www.redmine.org/projects/redm...
RedmineのWikiを解析したくって、これを使ってみました。
ちなみに上記のサイトによると、WikiへアクセスするREST API...
**やってみる [#db66f4fa]
REST APIへアクセスするライブラリとして [[Jersey>https://j...
JerseyはJavaでRESTfullなAPIにアクセスするためのライブラリ...
**プロジェクトの作成 [#b479fe39]
いろいろ準備するのは大変なのでMavenでプロジェクトをつくる...
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 ht...
<modelVersion>4.0.0</modelVersion>
<groupId>nu.mine.kino</groupId>
<artifactId>JerseyExamples</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-core</artifactId>
<version>1.17.1</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-client</artifactId>
<version>1.17.1</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
</dependencies>
</project>
**まずはIndexをとる [#w666968f]
Wikiページの一覧を取得するREST APIは http://www.redmine.o...
によると
GET /projects/foo/wiki/index.xml
や
GET /projects/foo/wiki/index.json
だそうです。Jerseyでアクセスしてみます。
@Test
public void wikiIndex() {
String url = redmineHost + "projects/" + projectKey
+ "/wiki/index.json?key=" + apiAccessKey;
Client client = Client.create();
WebResource resource = client.resource(url);
ClientResponse getResponse = resource.get(ClientR...
String responseStr = getResponse.getEntity(String...
System.out.println(responseStr);
}
結果は以下の通り。
{ "wiki_pages": [
{
"created_on": "2013-06-15T01:37:35Z",
"title": "Wiki",
"updated_on": "2013-06-15T10:37:35+09:00",
"version": 1
}
]}
「Wiki」というタイトルのページが存在することが分かりまし...
**タイトルを指定してWikiページを取得する [#oac658de]
Wikiページの一覧を取得するREST APIは http://www.redmine.o...
によると
GET /projects/foo/wiki/[title].xml
や
GET /projects/foo/wiki/[title].json
だそうです。Jerseyでアクセスしてみます。
@Test
public void wikiDetail() {
String title = "Wiki";
String url = redmineHost + "projects/" + projectK...
+ ".json?key=" + apiAccessKey;
Client client = Client.create();
WebResource resource = client.resource(url);
ClientResponse getResponse = resource.get(ClientR...
String responseStr = getResponse.getEntity(String...
System.out.println(responseStr);
}
結果は以下の通り。
{"wiki_page": {
"author": {
"id": 3,
"name": "hogehoge"
},
"comments": "",
"created_on": "2013-06-15T01:37:35Z",
"text": "h1. Wiki",
"title": "Wiki",
"updated_on": "2013-06-15T01:37:35Z",
"version": 1
}}
"text" のところがWikiの本文です。属性情報も含めて簡単にコ...
**Wikiを更新する [#dbea1fc6]
つぎにWikiを新規作成・更新してみます。Jerseyでデータをア...
ちなみに http://www.redmine.org/projects/redmine/wiki/Res...
PUT /projects/foo/wiki/UsersGuide.xml
<?xml version="1.0"?>
<wiki_page>
<text>Example</text>
<comments>Typo</comments>
</wiki_page>
のようにWikiの情報をxmlでHTTP PUTするAPIになっています。...
-[[Jersey と Apache Tomcat を使って RESTful な Web サービ...
このページを見た感じだと、JerseyでデータをPutするには
@XmlRootElement(name = "wiki_page")
public class WikiPage implements Serializable {
private String text;
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
}
このようにAnnotationされたオブジェクトを使って下記のよう...
@Test
public void wikiUpdate() throws UnsupportedEncodingEx...
WikiPage wikiPage = new WikiPage();
wikiPage.setText("updte text");
String title = "NewWiki"; // HTTP Putはいまのとこ...
String url = redmineHost + "projects/" + projectK...
+ URLEncoder.encode(title, "UTF-8") + ".x...
+ apiAccessKey;
Client c = Client.create();
WebResource r = c.resource(url);
ClientResponse response = r.accept(MediaType.APPL...
ClientResponse.class, wikiPage);
}
**関連リンク [#xd929836]
-[[[Examples] Index of /trunk/JerseyExamples>http://www.m...
-[[Rest api - Redmine>http://www.redmine.org/projects/red...
[[Jerseyで、Restのファイルアップロード - クロノスの雪山と...
-[[HTTPクライアントとして使うjersey-client - Akira Koyasu...
-[[Jersey と Apache Tomcat を使って RESTful な Web サービ...
-[[Jersey>https://jersey.java.net/]]
-[[JSON整形サービス>http://www.ctrlshift.net/jsonprettypr...
-[[maven - How do I migrate from Jersey 1.0 to Jersey 2.0...
----
この記事は
#vote(おもしろかった,そうでもない)
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}
ページ名: