【Strapi】如何在 Strapi 複製整支 API ?

post-thumbnail

重點

  1. 直接到 src > admin 複製 API 的整個資料夾

  2. 接著把檔案 rename(如下圖所示)

    Snipaste_2024-10-26_20-55-25.jpg

    1. API 資料夾名稱
    2. content-types
    3. controller
    4. routes
    5. services

實作

要注意 schema 的命名規則,以及要修改的地方

  • src/api/{API_ROUTE_NAME}/content-types/{API_ROUTE_NAME}/schema.json

    • collectionName
    • attribute
    • 有 relation 作「連動的 API」,也要一起改
  • sample schema.json

    {
      "kind": "collectionType",
      "collectionName": "curly_chu_articles", // 這個是用 _ 連接的 name
      "info": { // 用 - 串接
        "singularName": "curly-chu-article",
        "pluralName": "curly-chu-articles", // 複數
        "displayName": "curly-chu-article",
        "description": ""
      },
      //...
      "attributes": {
    	  // 用 _ 連接去命名 or 其他命名規則(不能用 - )
        "curly_chu_article_tags": {
          "type": "relation",
          "relation": "oneToMany",
          "target": "api::curly-chu-article-tag.curly-chu-article-tag" // 其他 API
        },
        "related_curly_chu_articles": {
          "type": "relation",
          "relation": "oneToMany",
          "target": "api::curly-chu-article.curly-chu-article",
          "mappedBy": "curly_chu_article"
        },
        "curly_chu_article": {
          "type": "relation",
          "relation": "manyToOne",
          "target": "api::curly-chu-article.curly-chu-article",
          "inversedBy": "related_curly_chu_articles"
        },
        
    	  //...
      }
    }
    

REF

  • 自己研究出來的結果