RTX1300入荷

RTX1300が入荷したので電源を入れてみました。

10GのサポートはSFP+ポートのみで、10GBase-Tのポートは1つもありませんでした。実売が14~15万円ぐらいということで、思ったよりも安い理由はこのあたりにあるんでしょうか。

LAN1の8ポートはすべて1000Base-Tのポートです。2つのSFP+ポートはLAN2とLAN3の排他利用ということを考慮すると、やはりLAN1に10GBase-Tを1つぐらいは欲しかったですね~。このあたりは残念。次のモデルでは2.5Gbps, 5Gbpsにも対応したマルチギガ対応10GBase-TポートをLAN1に1ポートぐらいは作って欲しいです。

SFP+は手持ちでFS.COMのモジュールがあったので挿してみました。NETGEARのAXM765互換品モジュール(30m用) です。ネット直販で1万5千円ぐらいだったかな。

LAN2に挿してみた。

そんでもって、早速、TELNETで確認。リビジョンは以下の通り。

LAN2のステータス確認してみたら、10GBASE-Rとの表示。見た目は問題はなさそうです。ポート番号はPORT9の表示ですね。

10GBase-Tのインターフェイスを持つファイルサーバーと10Gbpsで問題なく通信できました。今回はSFP+モジュールがNETGEARの互換品しか手持ちになかったのですが、汎用タイプのものを使った方が安心かも。

このRTX1300はマルチギガに対応しているらしいですが、マルチ(10Gbps, 5Gbps, 2.5Gbps, 1Gbps)に対応するSFP+モジュールって非常に少ないです。テストで使った10GBase-TのSFP+モジュールもCat5eケーブルで接続すると5Gbpsではなく1GBpsで接続されてしまいます。

マルチギガに対応するSFP+モジュールをヤマハさんはリリースする気はないんですかねぇ? SFP+モジュールがオプションで発売されていないようですし、SFP+モジュールのコンパチリストが欲しいですね。

マルチギガ対応ルーターといいつつも実質は10Gインターフェイスを持つスイッチと10Gbpsで通信させ、スイッチ側でマルチギガに対応するモデルを選択することになるのでしょう。

あと、光回線も10Gタイプに契約を切り替えないとこのルーターを買う意味はあまりないのですが、弊社はまだNTTもAuも10G回線のエリア対象外なんですよね・・・。

C#でIEYASU APIを使う

クラウド勤怠管理のHARMOS勤怠(旧称:IEYASU)にはRESTのAPIが用意されています。

今回、顧客案件でこの IEYASU API をC#から扱う機会があったので、そのメモです。

HttpClientを使ってもできると思いますが、今回はRestSharpを使いました。

開発環境は Visual Studio 2019です。

準備

まずは、API KEYを管理用WEB画面で取得しておきます。

尚、API KEYの有効期限は3か月です。更新忘れがないように注意が必要です。

次にVisual Studioに移動し、NuGetを使ってRestSharpをインストールします。

あと、Jsonを扱うのでシリアライズを使うとスマートです。以下のようにコード内でusingディレクティブを追加しておきます。

using RestSharp;
using System.Text.Json;

GET

ユーザー一覧や打刻データの POST や GETにはTokenが必要になりますので、ここでは認証用Tokenの取得をやってみます。AddHeaderメソッドを使い、さきほど発行しておいた API KEY をHeaderに埋め込めばOKです。

string url = "https://ieyasu.co/api/<company_code>/v1";            
RestClient client = new RestClient(url);

string api = "/authentication/token";            
RestRequest request = new RestRequest(api);            
request.AddHeader("Authorization", "Basic <api key>");  //APIキーでBasic認証
request.Method = Method.Get;
RestResponse response = await client.GetAsync(request);
MessageBox.Show(response.Content);

これでTokenが含まれたJsonを取得できます。

尚、<company_code>の部分はハーモス勤怠の契約時にもらった会社コードに置き換えます。

POST

ここではPOSTの簡単な例として打刻登録を扱います。

打刻の仕様は https://ieyasu.co/docs/api.html#/paths/~1stamp_logs/post に記載されていますが、

user_id と stamp_type が必須項目です。 stamp_type は 出勤の場合が1で、退勤が2です。

ここではuserをつかさどるUserDataクラスを作ります。

    class UserData
    {
        [JsonPropertyName("user_id")] public int UserID { get; set; }
        [JsonPropertyName("stamp_type")] public int StampType { get; set; }
    }

user_id も stamp_type も ingeger型です。

UserDataのインスタンスを作成するときは以下のようになります。

このコードで jsonStr には {“user_id”:5,”stamp_type”:1} が入ります。

UserData user = new UserData();
user.UserID = 5;  //user_id
user.StampType = 1;  //出勤
string jsonStr = JsonSerializer.Serialize(user);

あとはRestSharpを使ってPOSTを実行します。TokenはAddHeaderメソッドを使い、Headerとして追加しておきます。

string url = "https://ieyasu.co/api/<company_code>/v1";            
RestClient client = new RestClient(url);

string api = "/stamp_logs";
RestRequest req = new RestRequest(api);
req.AddHeader("Authorization", "Token <token>");   //<token>はBasic認証で取得しておく
req.AddJsonBody(jsonStr);    //Jsonの文字列はAddJsonBodyに放り込む
req.Method = Method.Post;
RestResponse response = await client.PostAsync(req);

これでスマホで出勤ボタンをタッチしたのと同じ効果が得られます。

以上です。