[JavaScript] Momento SDKでAPIが少し変更されてました

[JavaScript] Momento SDKでAPIが少し変更されてました

Clock Icon2023.01.17

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Introduction

DevelopersIOで何度か紹介している、
高速キャッシュサービスMomento Serverless Cache(以下Momento)のネタです。

しばらくJavascriptのSDKをバージョンアップせず使用していたのですが、
先日アップデートしたらAPIが少し変わっていました

Environment

今回試した環境は以下のとおりです。

  • MacBook Pro (13-inch, M1, 2020)
  • OS : MacOS 12.4
  • Node : v18.2.0

About the Changes

以前のMomentoに対するアクセス方法は↓のような感じでした。
(v0.14のとき)

//main.mjs
import {SimpleCacheClient} from '@gomomento/sdk';

// 認証トークンを設定
const AUTH_TOKEN = process.env.MOMENTO_AUTH_TOKEN;

// momentoクライアント初期化
const momento = new SimpleCacheClient(AUTH_TOKEN, 60);

const CACHE_NAME = 'myCache';

// キャッシュset
const setResult = await momento.set(CACHE_NAME, 'key_ts', 'value_ts');
console.log(`setResult:${setResult.text()}`);

// キャッシュget
const getResult = await momento.get(CACHE_NAME, 'key_ts');
console.log(`getResult:${getResult.text()}`);

現在の最新版SDK(v0.18)では下記のようになってます。

//main-latest.mjs
import {SimpleCacheClient,CacheSet,CacheGet} from '@gomomento/sdk';

// 認証トークンを設定
const AUTH_TOKEN = process.env.MOMENTO_AUTH_TOKEN;
// momentoクライアント初期化
const momento = new SimpleCacheClient(AUTH_TOKEN, 60);

const CACHE_NAME = 'myCache_latest';

// キャッシュset
const setResult = await momento.set(CACHE_NAME, 'key_ts', 'value_ts');
if (setResult instanceof CacheSet.Success) {
    console.log('Set Cache Data successfully with value ' + setResult.valueString());
} else if (setResult instanceof CacheSet.Error) {
    console.log('Error Set key: ' + setResult.message());
}
  
// キャッシュget
const getResult = await momento.get(CACHE_NAME, 'key_ts');
if (getResult instanceof CacheGet.Hit) {
    console.log(`getResult:${getResult.valueString()}`);
} else if (getResult instanceof CacheGet.Miss) {
    console.log('Cache miss');
} else if (getResult instanceof CacheGet.Error) {
    console.log(`Error: ${getResult.message()}`);
}

set/get関数がそれぞれに対応したレスポンス型を返すようになりました。
(CacheSet・CacheGetがそれぞれSuccess/Error型を返す)
そして、そのレスポンス型から実際の値を取り出す関数も変わってます。
(valueString/valueUint8Array)

Summary

SDKを更新した場合、そのままのコードだとエラーになってしまうので
適切に修正しましょう。

この記事でキャッシュに使用したMomentoについてのお問い合わせはこちらです。
お気軽にお問い合わせください。

Momentoセミナーのお知らせ

2023年2月21日(火) 16:00からMomentoのセミナーを開催します。
興味があるかたはぜひご参加ください。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.