summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2019-02-25 04:18:09 +0900
committersyuilo <syuilotan@yahoo.co.jp>2019-02-25 04:18:09 +0900
commit60c9a6528f10ab63ca03fd1012a63c08727492fb (patch)
tree4066f51ce838649564b3db3606730c02e4d4fec2 /src
parentImprove doc (diff)
downloadsharkey-60c9a6528f10ab63ca03fd1012a63c08727492fb.tar.gz
sharkey-60c9a6528f10ab63ca03fd1012a63c08727492fb.tar.bz2
sharkey-60c9a6528f10ab63ca03fd1012a63c08727492fb.zip
Improve doc
Diffstat (limited to 'src')
-rw-r--r--src/server/api/endpoints.ts1
-rw-r--r--src/server/api/endpoints/auth/session/generate.ts14
-rw-r--r--src/server/api/endpoints/auth/session/userkey.ts15
-rw-r--r--src/server/api/endpoints/notes.ts1
-rw-r--r--src/server/api/endpoints/notes/create.ts1
-rw-r--r--src/server/api/endpoints/notes/global-timeline.ts1
-rw-r--r--src/server/api/endpoints/notes/hybrid-timeline.ts1
-rw-r--r--src/server/api/endpoints/notes/local-timeline.ts1
-rw-r--r--src/server/api/endpoints/notes/search-by-tag.ts1
-rw-r--r--src/server/api/endpoints/notes/timeline.ts1
-rw-r--r--src/server/api/endpoints/notes/user-list-timeline.ts1
-rw-r--r--src/server/api/endpoints/users/notes.ts1
-rw-r--r--src/server/api/openapi/description.ts23
-rw-r--r--src/server/api/openapi/gen-spec.ts2
14 files changed, 52 insertions, 12 deletions
diff --git a/src/server/api/endpoints.ts b/src/server/api/endpoints.ts
index 13bf2538db..1a8fca6dfa 100644
--- a/src/server/api/endpoints.ts
+++ b/src/server/api/endpoints.ts
@@ -7,6 +7,7 @@ export type Param = {
validator: Context<any>;
transform?: any;
default?: any;
+ deprecated?: boolean;
desc?: { [key: string]: string };
ref?: string;
};
diff --git a/src/server/api/endpoints/auth/session/generate.ts b/src/server/api/endpoints/auth/session/generate.ts
index ddbd7209c9..e12bea7681 100644
--- a/src/server/api/endpoints/auth/session/generate.ts
+++ b/src/server/api/endpoints/auth/session/generate.ts
@@ -21,6 +21,20 @@ export const meta = {
}
},
+ res: {
+ type: 'object',
+ properties: {
+ token: {
+ type: 'string',
+ description: 'セッションのトークン'
+ },
+ url: {
+ type: 'string',
+ description: 'セッションのURL'
+ },
+ }
+ },
+
errors: {
noSuchApp: {
message: 'No such app.',
diff --git a/src/server/api/endpoints/auth/session/userkey.ts b/src/server/api/endpoints/auth/session/userkey.ts
index 49dde23ede..e09e16e658 100644
--- a/src/server/api/endpoints/auth/session/userkey.ts
+++ b/src/server/api/endpoints/auth/session/userkey.ts
@@ -29,6 +29,21 @@ export const meta = {
}
},
+ res: {
+ type: 'object',
+ properties: {
+ accessToken: {
+ type: 'string',
+ description: 'ユーザーのアクセストークン',
+ },
+
+ user: {
+ type: 'User',
+ description: '認証したユーザー'
+ },
+ }
+ },
+
errors: {
noSuchApp: {
message: 'No such app.',
diff --git a/src/server/api/endpoints/notes.ts b/src/server/api/endpoints/notes.ts
index 8283e92bfe..835c515cfe 100644
--- a/src/server/api/endpoints/notes.ts
+++ b/src/server/api/endpoints/notes.ts
@@ -41,6 +41,7 @@ export const meta = {
media: {
validator: $.optional.bool,
+ deprecated: true,
desc: {
'ja-JP': 'ファイルが添付された投稿に限定するか否か (このパラメータは廃止予定です。代わりに withFiles を使ってください。)'
}
diff --git a/src/server/api/endpoints/notes/create.ts b/src/server/api/endpoints/notes/create.ts
index 7df86625d6..bb0d8f94f5 100644
--- a/src/server/api/endpoints/notes/create.ts
+++ b/src/server/api/endpoints/notes/create.ts
@@ -138,6 +138,7 @@ export const meta = {
mediaIds: {
validator: $.optional.arr($.type(ID)).unique().range(1, 4),
transform: transformMany,
+ deprecated: true,
desc: {
'ja-JP': '添付するファイル (このパラメータは廃止予定です。代わりに fileIds を使ってください。)'
}
diff --git a/src/server/api/endpoints/notes/global-timeline.ts b/src/server/api/endpoints/notes/global-timeline.ts
index b62d8e25a3..0eb761cdb6 100644
--- a/src/server/api/endpoints/notes/global-timeline.ts
+++ b/src/server/api/endpoints/notes/global-timeline.ts
@@ -24,6 +24,7 @@ export const meta = {
mediaOnly: {
validator: $.optional.bool,
+ deprecated: true,
desc: {
'ja-JP': 'ファイルが添付された投稿に限定するか否か (このパラメータは廃止予定です。代わりに withFiles を使ってください。)'
}
diff --git a/src/server/api/endpoints/notes/hybrid-timeline.ts b/src/server/api/endpoints/notes/hybrid-timeline.ts
index 153436b9bb..9695547f04 100644
--- a/src/server/api/endpoints/notes/hybrid-timeline.ts
+++ b/src/server/api/endpoints/notes/hybrid-timeline.ts
@@ -88,6 +88,7 @@ export const meta = {
mediaOnly: {
validator: $.optional.bool,
+ deprecated: true,
desc: {
'ja-JP': 'true にすると、ファイルが添付された投稿だけ取得します (このパラメータは廃止予定です。代わりに withFiles を使ってください。)'
}
diff --git a/src/server/api/endpoints/notes/local-timeline.ts b/src/server/api/endpoints/notes/local-timeline.ts
index 06c6d7a533..57ef4c3e15 100644
--- a/src/server/api/endpoints/notes/local-timeline.ts
+++ b/src/server/api/endpoints/notes/local-timeline.ts
@@ -25,6 +25,7 @@ export const meta = {
mediaOnly: {
validator: $.optional.bool,
+ deprecated: true,
desc: {
'ja-JP': 'ファイルが添付された投稿に限定するか否か (このパラメータは廃止予定です。代わりに withFiles を使ってください。)'
}
diff --git a/src/server/api/endpoints/notes/search-by-tag.ts b/src/server/api/endpoints/notes/search-by-tag.ts
index 0030e2e37a..b33c884049 100644
--- a/src/server/api/endpoints/notes/search-by-tag.ts
+++ b/src/server/api/endpoints/notes/search-by-tag.ts
@@ -64,6 +64,7 @@ export const meta = {
media: {
validator: $.optional.nullable.bool,
default: null as any,
+ deprecated: true,
desc: {
'ja-JP': 'ファイルが添付された投稿に限定するか否か (このパラメータは廃止予定です。代わりに withFiles を使ってください。)'
}
diff --git a/src/server/api/endpoints/notes/timeline.ts b/src/server/api/endpoints/notes/timeline.ts
index 9ec8070f71..6ff7690c74 100644
--- a/src/server/api/endpoints/notes/timeline.ts
+++ b/src/server/api/endpoints/notes/timeline.ts
@@ -89,6 +89,7 @@ export const meta = {
mediaOnly: {
validator: $.optional.bool,
+ deprecated: true,
desc: {
'ja-JP': 'true にすると、ファイルが添付された投稿だけ取得します (このパラメータは廃止予定です。代わりに withFiles を使ってください。)'
}
diff --git a/src/server/api/endpoints/notes/user-list-timeline.ts b/src/server/api/endpoints/notes/user-list-timeline.ts
index 45e96fbdac..17c24ab119 100644
--- a/src/server/api/endpoints/notes/user-list-timeline.ts
+++ b/src/server/api/endpoints/notes/user-list-timeline.ts
@@ -98,6 +98,7 @@ export const meta = {
mediaOnly: {
validator: $.optional.bool,
+ deprecated: true,
desc: {
'ja-JP': 'true にすると、ファイルが添付された投稿だけ取得します (このパラメータは廃止予定です。代わりに withFiles を使ってください。)'
}
diff --git a/src/server/api/endpoints/users/notes.ts b/src/server/api/endpoints/users/notes.ts
index f8942fb2d3..10d2f37fc2 100644
--- a/src/server/api/endpoints/users/notes.ts
+++ b/src/server/api/endpoints/users/notes.ts
@@ -105,6 +105,7 @@ export const meta = {
mediaOnly: {
validator: $.optional.bool,
default: false,
+ deprecated: true,
desc: {
'ja-JP': 'true にすると、ファイルが添付された投稿だけ取得します (このパラメータは廃止予定です。代わりに withFiles を使ってください。)'
}
diff --git a/src/server/api/openapi/description.ts b/src/server/api/openapi/description.ts
index cc5f233c53..04a0b4c719 100644
--- a/src/server/api/openapi/description.ts
+++ b/src/server/api/openapi/description.ts
@@ -3,16 +3,16 @@ import config from '../../../config';
export const description = `
## Usage
**APIはすべてPOSTでリクエスト/レスポンスともにJSON形式です。**
-一部のAPIは認証情報(アクセストークン)が必要です。リクエストの際に\`i\`というパラメータでアクセストークンを添付してください。
+一部のAPIはリクエストに認証情報(APIキー)が必要です。リクエストの際に\`i\`というパラメータでAPIキーを添付してください。
-### 自分のアカウントのアクセストークンを取得する
-「設定 > API」で、自分のアクセストークンを取得できます。
+### 自分のアカウントのAPIキーを取得する
+「設定 > API」で、自分のAPIキーを取得できます。
> アカウントを不正利用される可能性があるため、このトークンは第三者に教えないでください(アプリなどにも入力しないでください)。
-### アプリケーションとしてアクセストークンを取得する
-直接ユーザーのアクセストークンをアプリケーションが扱うのはセキュリティ上のリスクがあるので、
-アプリケーションからAPIを利用する際には、アプリケーションとアプリケーションを利用するユーザーが結び付けられた専用のアクセストークンをMisskeyに発行してもらいます。
+### アプリケーションとしてAPIキーを取得する
+直接ユーザーのAPIキーをアプリケーションが扱うのはセキュリティ上のリスクがあるので、
+アプリケーションからAPIを利用する際には、アプリケーションとアプリケーションを利用するユーザーが結び付けられた専用のAPIキーを発行します。
#### 1.アプリケーションを登録する
まず、あなたのアプリケーションやWebサービス(以後、あなたのアプリと呼びます)をMisskeyに登録します。
@@ -25,8 +25,7 @@ export const description = `
#### 2.ユーザーに認証させる
アプリを使ってもらうには、ユーザーにアカウントへのアクセスの許可をもらう必要があります。
-認証セッションを開始するには、[${config.apiUrl}/auth/session/generate](#operation/auth/session/generate) へパラメータに appSecret としてシークレットキーを含めたリクエストを送信します。
-リクエスト形式はJSONで、メソッドはPOSTです。
+認証セッションを開始するには、[${config.apiUrl}/auth/session/generate](#operation/auth/session/generate) へパラメータに\`appSecret\`としてシークレットキーを含めたリクエストを送信します。
レスポンスとして認証セッションのトークンや認証フォームのURLが取得できるので、認証フォームのURLをブラウザで表示し、ユーザーにフォームを提示してください。
あなたのアプリがコールバックURLを設定している場合、
@@ -34,14 +33,14 @@ export const description = `
あなたのアプリがコールバックURLを設定していない場合、ユーザーがあなたのアプリの連携を許可したことを(何らかの方法で(たとえばボタンを押させるなど))確認出来るようにしてください。
-#### 3.ユーザートークンを取得する
+#### 3.アクセストークンを取得する
ユーザーが連携を許可したら、[${config.apiUrl}/auth/session/userkey](#operation/auth/session/userkey) へリクエストを送信します。
-上手くいけば、認証したユーザーのユーザートークンがレスポンスとして取得できます。おめでとうございます!
+上手くいけば、認証したユーザーのアクセストークンがレスポンスとして取得できます。おめでとうございます!
-ユーザートークンが取得できたら、*「ユーザーのユーザートークン+あなたのアプリのシークレットキーをsha256したもの」*をアクセストークンとして、APIにリクエストできます。
+アクセストークンが取得できたら、*「ユーザーのアクセストークン+あなたのアプリのシークレットキーをsha256したもの」*をAPIキーとして、APIにリクエストできます。
-アクセストークンの生成方法を擬似コードで表すと次のようになります:
+APIキーの生成方法を擬似コードで表すと次のようになります:
\`\`\` js
const i = sha256(userToken + secretKey);
\`\`\`
diff --git a/src/server/api/openapi/gen-spec.ts b/src/server/api/openapi/gen-spec.ts
index c8b1c21de4..64da6edbeb 100644
--- a/src/server/api/openapi/gen-spec.ts
+++ b/src/server/api/openapi/gen-spec.ts
@@ -56,6 +56,7 @@ export function genOpenapiSpec(lang = 'ja-JP') {
return {
description: (param.data || {}).desc,
default: (param.data || {}).default,
+ deprecated: (param.data || {}).deprecated,
...((param.data || {}).default ? { default: (param.data || {}).default } : {}),
type: param.name === 'ID' ? 'string' : param.name.toLowerCase(),
...(param.name === 'ID' ? { example: 'xxxxxxxxxxxxxxxxxxxxxxxx', format: 'id' } : {}),
@@ -97,6 +98,7 @@ export function genOpenapiSpec(lang = 'ja-JP') {
for (const [k, v] of Object.entries(endpoint.meta.params)) {
if (v.validator.data == null) v.validator.data = {};
if (v.desc) v.validator.data.desc = v.desc[lang];
+ if (v.deprecated) v.validator.data.deprecated = v.deprecated;
if (v.default) v.validator.data.default = v.default;
porops[k] = v.validator;
}