Microsoft API에서 get을 위해 고전하는 이야기

개시하다


Nuxt는 SSG+마이크로CMOS로 간이 포트 포루로, 언어는 타입 스크립트로 실천하고 싶다.

컨디션

  • nuxt
  • npm
  • microCMS
  • microcms-lib
  • 아래의 사이트는 yarn이지만, 거의 마찬가지로 참고이기 때문이다.
    다만 마이크로cm-typescript 지령이 없어'node module/microcm-typescript~'로 다시 쳤다.
    https://zenn.dev/sora_kumo/articles/2876c8f98eca56
    공식.
    https://www.npmjs.com/package/microcms-lib
    마이크로cm-lib가 설치되어 있으면 API 요청과 데이터를 얻는 유형 정의 등이 자동으로 진행되기 때문에 나는 매우 수월하다고 생각해서 가져왔다.(금형 정의 파일만 직접 만들 수 있다면 솔직히 axios도 가능)

    질문 = get을 통해 데이터를 가져올 수 없음(401)


    import { MicroCMS } from "microcms-lib";
    import { EndPoints } from "../types/cms-types";
    
    // CMSとの接続設定
    const cms = new MicroCMS<EndPoints>({
      service: process.env.SERVICE!,
      apiKey: process.env.APIKEY,
      // apiWriteKey: process.env.APIKEY_WRITE,
      // apiGlobalKey: process.env.APIKEY_GLOBAL
    });
    
    @Component
    export default class Article extends Vue {
      // ページ生成時にCMSから記事一覧を取得
      created() {
        const getArticle = async () => {
          const returnData = await cms.gets("get_articles", {
            limit: 10000,
            fields: ["id", "title"],
            orders: "createdAt"
          });
          console.log(returnData);
          return returnData;
        };
        getArticle();
      }
    }
    
    401 = "인증 실패"

    컬로 진행이 잘 되는지 확인을 해보도록 하겠습니다.


    curl -X GET [url]  -H  'X-API-KEY:[key]'
    "message":"X-MICROCMS-API-KEY header is invalid."}% → 失敗
    
    curl -X GET [url]  -H  'X-MICROCMS-API-KEY:[key]'
    → 成功!!
    

    어떻게 된 거야?


    인증 키의 요청 헤더가 X-API-KEY에서 X-MICROCMS-AAPI-KEY로 변경된 것 같습니다.
    https://document.microcms.io/content-api/x-microcms-api-key

    해결책


    node_modules/microcms-lib/dist/index.제이스를 바꿨어.
    위치를 모두 X-MICROCMS-AAPI-KEY로 변경하려면 X-API-KEY를 읽어들입니다.(4~6곳)
    결국 해결됐지만 패키지.json을 다시 설치할 때 원상태로 복구하기 위해 node모듈을 직접 변경하는 것은 좋지 않습니다.그래서 axios에 설치하는 게 좋겠어요.
    결국 먼 길을 돌아도 되겠습니까?

    좋은 웹페이지 즐겨찾기