WebAPIの利用手順書

概要

このドキュメントは、WebClass の WebAPI の利用手順について記載します。
WebClassで利用できるWebAPIの詳細ついては以下のドキュメントをご覧ください。

WebClass APIドキュメント

WebAPI の有効化


WebAPI を利用するには、事前に WebClass に ClientIDトークン取得用認証キー を設定する必要があります。この設定はサポートが行いますので、ClientID を指定してください。

  • ClientID は、API を利用するシステムを識別するためのものです。
  • URL または英数字の文字列を使用します。

    : https://some.existing.service/

サポートが認証キーを生成し、ClientID と一緒に登録します。登録後、認証キーを通知します。

トークンの取得


ClientIDトークン取得用認証キー を使用してアクセストークンを取得します。

Form形式の場合

curl -X POST https://your.webclass.site/webclass/api.php/auth/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "client_id=YOUR-CLIENT-ID&key=YOUR-SECRET-KEY"

JSON形式の場合 (WebClass v12 以降)

curl -X POST https://your.webclass.site/webclass/api.php/auth/token \
  -H "Content-Type: application/json" \
  -d '{"client_id":"YOUR-CLIENT-ID", "key":"YOUR-SECRET-KEY"}'

レスポンス例

{
  "result": "OK",
  "token": "xxxxxxxxxx"
}

API の利用


取得したトークンを Bearer ヘッダー に設定して API を呼び出します。

教材の成績データ取得API の例

:contents_id はデータを取り出す教材 ID に置き換えます。

curl -X GET https://your.webclass.site/webclass/api.php/rest/contents/:contents_id/scores \
  -H "Authorization: Bearer xxxxxxxx"

利用例


WebAPIの利用例として、ユーザ登録APIとコースユーザ登録APIの利用方法を紹介します。

ユーザ登録


ユーザ登録 API を利用して、新しいユーザを登録します。

  • メソッド: POST
  • Content-Type: application/json

ユーザ登録 API エンドポイント

https://サーバホスト/webclass/api.php/rest/user

送信データ例

{
  "user_id": "id000001",
  "fullname": "鈴木 先生",
  "email": "suzukisensei@example.com",
  "perm": "1",
  "student_id": "2022000001",
  "login_id": "extid000001"
}

返却データ例

{
  "result": "Registration successful. user_id <id000001> added."
}

コースユーザ登録


コースユーザ登録 API を利用して、コースにユーザを登録します。

  • メソッド: POST
  • Content-Type: application/json

コースユーザ登録 API エンドポイント

https://サーバホスト/webclass/api.php/rest/course/APITestCourse/member

送信データ例

{
  "user_id": "id000001",
  "course_perm": "0"
}

返却データ例

{
  "result": "Registration successful. user_id <id000001> added."
}

Safari 18

Safari 18 が9月16日にリリースされました。macOS 15, macOS Sonoma, macOS Ventura.でダウンロード可能です。

Safari 18 Release Notes

https://developer.apple.com/documentation/safari-release-notes/safari-18-release-notes

セキュリティアップデート情報

https://support.apple.com/ja-jp/121241

WebClassに関係のある変更

WebClass に影響のある変更はありませんでした。

気になる変更点

Added support for content-visibility. (117156105)

要素をレンダリングするかどうか制御するcontent-visibilityプロパティがサポートされました。

  • content-visibility: visibleでレンダリング
  • content-visibility: hiddenでレンダリングしない

CSSによるレンダリング制御によって、Webページのパフォーマンス向上が期待できます。

最後に

その他ブラウザのリリース情報はこちらにまとめています。

Firefox 130

Firefox 130 が 9月3日にリリースされました。

Firefox 130 release note

以下のリンクに主な変更点の情報が記載されています。

Pickup for WebClass

今回のリリースでは、WebClassに影響のある変更はありませんでした。

気になる変更点

Firefox Labsが追加

今回のアップデートで、 Firefoxの実験的な機能を試すことができる「Firefox Labs」が追加されました。

settings > Firefox Labsでアクセスできます。

現在は、

  • AI chatbot
  • Picture-in-Picture: auto-open on tab switch
  • Address Bar: show results during IME composition

の3つの実験的な機能が使えるようになっています。

AI chatbotを選択すると、どのchatbotを使用するか選択できるようになります。
ChatGPTを選択すると右側にChatGPTのページが表示されます。

新機能が手軽に試せる面白いアップデートだと思います。

今後の Firefox リリースについて

次回のリリースは 10月 1 日に予定されています。

Firefox Release Calendar

その他ブラウザのリリースはこちらにまとめています。

Google Chrome 125

Google Chrome 125 の安定版が5月8日にリリースされました。

Chrome 125 release note

以下のリンクに主な変更点の情報が記載されています。

https://chromestatus.com/roadmap

https://developer.chrome.com/blog/new-in-chrome-125

Pickup for WebClass

今回のリリースで、WebClassの機能に影響を与える変更点はありませんでした。

気になる変更点

RegExp duplicate named capture groups & RegExp modifiers

正規表現マッチングの機能が強化されました。

  1. 一つのマッチングケース内で同じ名前付きキャプチャグループを使えるようになりました。
    これにより以下のような記述が可能になります。
    str.match(/(?[0-9]{4})-[0-9]{2}|[0-9]{2}-(?[0-9]{4})/)
  2. 正規表現修飾子は、imsフラグをパターン内で局所的に変更できるようになりました。この機能は以下のように使えます。
    const re2 = /^(?i:[a-z])[a-z]$/;

JavaScriptの正規表現マッチングは記述に柔軟性がなく、使いづらいと思っていたので、このアップデートである程度は使いやすくなるのではないかと期待しています。

今後の Chrome リリースについて

次回のリリースは2024年6月5日に予定されています。

その他ブラウザのリリースはこちらにまとめています。

Google Chrome 122

Google Chrome 122 の安定版が2月14日にリリースされました。

Chrome 122 release note

以下のリンクに主な変更点の情報が記載されています。

https://chromestatus.com/roadmap

https://developer.chrome.com/blog/new-in-chrome-122

Pickup for WebClass

Interoperable mousedown event cancellation in iframe

iframe内のマウスポインタがドラッグされたままiframeの外に出て、mousdownイベントがキャンセルされた際の例外処理が変更されました。

変更前:mousemoveイベントとmouseupイベントが外側のフレームに送信される
変更後:mousemoveイベントとmouseupイベントをiframeに送信する

これはChromeがWebkitやMozillaと異なる処理をしていたためです。この変更によりWebkitやMozillaと同じ処理になります。
リンク:https://chromestatus.com/feature/5083240891416576

WebClassの処理に大きな影響を与える変更ではありませんが、変更前の処理で認識していた方は注意が必要です。

気になる変更点

Storage Buckets API

このAPIによって、デバイス内のストレージを分割された保存領域である「bucket」によって管理できるようになります。

これまではサイトによって保存されたデータを永続化するか削除するかの2つの選択肢しかありませんでしたが、バケットごとに削除の制御が可能になります。

bucketに優先順位を付け、ディスク容量が不足した場合に優先度の低いバケットを削除するなど、実践的なストレージ管理ができるようになります。

Storage Buckets APIの詳細:https://wicg.github.io/storage-buckets/explainer

これまでできなかった細かいストレージの管理を可能にする面白い機能ですが、Chromeが開発した機能であり、他のブラウザには実装されていません。しかし、他のWeb developersも肯定的な意見を示しており、今後対応する可能性は十分にあると考えます。

今後の Chrome リリースについて

次回のリリースは2024年3月13日に予定されています。

その他ブラウザのリリースはこちらにまとめています。