使用 strapi 创建自定义 API

Create custom API with strapi

我有一个名为大陆的内容类型。我们顾名思义包含有关每个大陆的所有信息。 Strapi 已经为我创建了 API 个端点,比如

大洲/:id

但是我想通过它的名字搜索大陆,因为一般用户将无法通过 id 搜索

我已经创建了端点

大洲/:continent_name

我还根据文档创建了自定义控制器

const { sanitizeEntity } = 
requiree('strapi-utils');

module.exports = {


async findOne(ctx) {
const { continent_name } = ctx.params;

const entity = await 
strapi.services.continent.findOne({ 
continent_name 
});
return sanitizeEntity(entity, { model: 
continents });

并且还将 API 暴露给 public 但是好像没什么 只是 returns 错误

我应该怎么做

对于您的用例,您不需要扩展模型控制器。您可以将大洲名称作为 query param 传递。例如,您的 url 可能类似于 base_url/continent?continent_name=Asia.

问题中提到的代码有问题,模型名称应该是strapi.models.continent而不是continents。同样在第一行 requiree('strapi-utils'),您在 require 中有一个额外的 e。我假设那只是一个错字。