microcms-js-sdk
microcms-js-sdk copied to clipboard
microCMS JavaScript SDK.
SDKにリトライオプションがないためNext.jsなどでビルドを行う際にビルド全体が停止してしまうか一部のデータが不足してしまう可能性が高いです。 クライアント側でリトライ処理を書けば良いのですが、毎回その実装を行うのは手間がかかります。 # 提案 インタフェース提案を行いますがこの通りでなくても構いません。 * `client` 生成時にデフォルトのリトライ設定ができる ```js //例 const client = createClient({ serviceDomain: "YOUR_DOMAIN", // YOUR_DOMAIN is the XXXX part of XXXX.microcms.io apiKey: "YOUR_API_KEY", retry: true, //新しいパラメータ });...
日頃からお世話になっております。 本番環境では公開済みのコンテンツのみを表示したいが、テスト環境では下書き状態のコンテンツも含めて表示し、一覧ページや詳細ページなどサイト全体の表示を確認したいという状況に直面しましたので、パラメータなどで叩く先を Management API に切り替えられるようにしていただけると大変ありがたいです…!
現状では `res.json` をした結果を返しており、レスポンスヘッダーなどを利用できない。 これらを利用できるように、返却する値を変更するオプションを追加するのはどうだろうか?
Issueにしようかと思いましたが、説明するよりコードを書いた方が早かったのでPRを作ってしまいました。 感覚的にはIssueのつもりで出しているので、レスポンスが遅かったりしたら 勝手に修正してマージしてしまっても大丈夫です ## 修正内容 - エイリアスパスでインポートできるようにする - Promise.allとlimitを併用し、getAllContents関数を高速化する - limitを引数にして利用者が自由に変更できるようにする コンテンツ容量によっては、100件取得すると`最大レスポンスサイズ:約5MB`に抵触してエラーになるため - インターバルを引数にして利用者が自由に変更できるようにする 1秒間に60リクエストという、microCMSの制限ギリギリであるため。 ## 補足 テストケースを追加する必要がありそうですが、まだ対応できていないです ## help テストが通らないです。 ざっくりこんなエラーです ``` console.warn [MSW] Warning: captured a request without...
こちらのSDKを使わせていただいてTypeScriptで実装をしているのですが、`createClient` メソッド の戻り値の型定義がないので扱いづらく困っております。 取り急ぎ下記の `MicroCmsClientInterface` のように自前で定義しています。(自分がTypeScriptに精通していないので知らないだけかもしれませんが、SDKの定義をうまいこと流用したりできるのでしょうか...?) ```ts type MicroCmsClientInterface = { get: ({ endpoint, contentId, queries, customRequestInit, }: GetRequest) => Promise getList: ({ endpoint, queries, customRequestInit, }: GetListRequest) => Promise...
## 背景 `MicroCMSQuery`の`fields`にリテラル型のタプルを渡した時、以下のような型エラーが発生します。 ```ts // 型エラーの発生する最小構成 const client = createClient({ "apiKey": '', serviceDomain: "" }) client.get({ endpoint: '', queries: { fields: ['id'] as const } }) ``` ```text Type 'readonly...
AWS Lambda の Node.js にて microcms-js-sdk を利用しています。 microCMS からのデータ取得時に低頻度で `Network Error. Details: TypeError: fetch failed` エラーとなる現象に直面しています。 このエラーの発生原因そのものは microcms-js-sdk 側の問題ではなくインフラ起因だろうと考えているのですが、事象の深堀りができずに困っています。 Node.js の `fetch` の場合、`error.cause` に根本エラーの情報(e.g. `ENOTFOUND` など) が含まれているため、これをログから確認したいのですが、以下の実装で error.message のみしか参照していないため、詳細情報がわかりません。 https://github.com/microcmsio/microcms-js-sdk/blob/main/src/createClient.ts#L132-L134...
## Summary by CodeRabbit * **新機能** * 更新操作でドラフト保存が可能になりました(isDraft フラグ指定でドラフトとして更新)。 * **パブリックAPIの変更** * 更新リクエストにオプションの isDraft フィールドが追加され、更新呼び出しで指定可能になりました。 * **テスト** * ドラフト/非ドラフト双方の更新フローを検証するテストを追加・更新しました。 * **ドキュメント** * README と日本語ドキュメントに「ドラフト更新」の使用例を追加し、関連コメントを整理しました。 ✏️ Tip: You can customize this...
## 環境 - next: 15.3.1 - microcms-js-sdk 3.2.0 ## 背景 関連: #53 Next 15 でキャッシュの挙動に破壊的変更が入り、 `fetch` 結果がデフォルトでキャッシュされなくなりました。 以前のバージョンのように `fetch` の結果をキャッシュするには、2025/5/6現在、以下のいずれかの対応が必要になります: - `'use cache'` ディレクティブを使用する (canary バージョンのみ) - `fetch` に `cache:...
この度、microCMSを使用することになりました。 READMEを参考して、少し疑問点がありますので、お聞きしたいと思います。 - client.get()と他のgetメソッドとの区別 READMEには記載していないですがが、御社が提供しているSaaSを使用すると、APIレビュー機能があります。(コード例もありますので非常に助かりました)。そこのコードには、client.get()メソッドを使用しています。READMEに記載していないが、使い方上なにか違いがありますか? 例: `client .get({ endpoint: 'product', }) .then((res) => console.log(res));` - client.getList()などのsdkを使用する際に、リトライ処理が必要か? createClientなどのソースコードを見させていただきました。リトライ処理は既に設けているみたいなので、sdkを使用してリクエストを送信する際に、特にリトライ処理を考慮しなくても大丈夫ですか? https://github.com/microcmsio/microcms-js-sdk/blob/7d2d0fc7a412108570cf2f05dba46f8635aa4e7f/src/createClient.ts#L81