Nuxt Nation カンファレンス開催!11月12日~13日、ご参加ください。

jsonapi
nuxt-jsonapi

Nuxt向けの簡単なJSON:APIクライアント統合

Nuxt JSON:API logo

nuxt-jsonapi

npm version npm downloads Github Actions CI Codecov License

Nuxt.js向けの簡単なJSON:APIクライアント統合

📖   リリースノート

バージョン2.xはNuxt 3.xをサポートしています。

バージョン1.xはNuxt 2.xをサポートしています

はじめに

nuxt-jsonapiNuxtJSON:API クライアントの簡単な統合を追加します。これは優れたKitsu JSON:APIクライアントを基にした緩やかなラッパーです。

このモジュールは、this.$jsonApi(Options API)またはconst { $jsonApi } = useNuxtApp()(Composition API)を使用して、どこからでもクライアントにアクセスできる$jsonApiインスタンスをグローバルに注入します。

設定

  1. プロジェクトにnuxt-jsonapi依存関係を追加します
yarn add nuxt-jsonapi # or npm install nuxt-jsonapi
  1. nuxt.config.jsmodulesセクションにnuxt-jsonapiを追加します
{
  modules: [
    // Simple usage
    'nuxt-jsonapi',

    // With options
    [
      'nuxt-jsonapi',
      {
        baseURL: 'http://www.example.com/api',
        /* other module options */
      },
    ],
  ]
}
  1. 手順2でオプションを渡さなかった場合は、モジュールオプションを構成するためにnuxt.config.jsjsonApiオブジェクトを追加します
export default {
  modules: ['nuxt-jsonapi'],

  jsonApi: {
    baseURL: 'http://www.example.com/api',
    /* other module options */
  },
}

❗ 重要

baseURLオプションを指定しないと、デフォルトの/jsonapi URLが使用されます。**これはほとんどの場合、意図したものではないため**、正しく設定されていることを確認してください。


使用方法

クライアントが提供するすべての機能については、Kitsuの優れたドキュメントを参照してください。

クライアントには次のようにアクセスできます。

Options API

this.$jsonApi

export default defineNuxtComponent({
  async asyncData({ $jsonApi }) {
    const { data } = await $jsonApi.get('/article')

    return {
      articles: data,
    }
  },
})

Composition API

const { $jsonApi } = useNuxtApp()

<script setup>
import { useNuxtApp, useAsyncData } from '#app'

const { $jsonApi } = useNuxtApp()

const { data: articles } = await useAsyncData(() => $jsonApi.get('/article'), {
  transform: ({ data }) => data,
})
</script>

開発

  1. このリポジトリをクローンします
  2. yarn installまたはnpm installを使用して依存関係をインストールします
  3. yarn devまたはnpm run devを使用して開発サーバーを起動します
  4. yarn testまたはnpm run testを使用して自動テストを実行します
  • npm run dev:prepareを実行して型スタブを生成します。
  • npm run devを使用して、開発モードでplaygroundを起動します。

ライセンス

MITライセンス

Copyright (c) Patrick Cate