asp.net-web-api - NgRx 数据,EntityCollectionService 的默认 Api 不匹配 Asp.net Core Web Api
问题描述
我有扩展 ngrx\data 的 EntityCollectionServiceBase 的服务
@Injectable()
export class ProductService extends EntityCollectionServiceBase<Product> {
constructor(elementsFactory: EntityCollectionServiceElementsFactory) {
super('Product', elementsFactory);
}
我的 asp.net 控制器是这样的
[Route("api/[controller]")]
[ApiController]
public class ProductController : ApiController
{
// GET: api/<ProductController>
[HttpGet]
public async Task<ActionResult<ProductsListVm>> GetAll()
{
var vm = await Mediator.Send(new GetProductsListQuery());
return Ok(vm);
}
// GET api/<ProductController>/5
[HttpGet("{id}")]
public string Get(int id)
{
return "value";
}
}
因此,当我在 ngrx\data 的实体服务上调用 GetAll 时,它请求 {url}/api/products/ 而 asp.net Web API 控制器仅响应 {url}/api/product/
用最少的代码解决的任何配置或技巧
解决方案
您应该将复数名称定义为:
import { EntityMetadataMap } from 'ngrx-data';
const entityMetadata: EntityMetadataMap = {
Product: {},
};
const pluralNames = { Product: 'product' };
export const entityConfig = {
entityMetadata,
pluralNames
};
推荐阅读
- android - 子项目模块无法解析它自己的依赖
- javascript - jsp中的Json Hash映射视图
- dart - 如何检查值是否为枚举?
- mongodb - $addToSet 没有更新数组中的对象?
- javascript - 反应上下文 - 'contextType' 未定义
- python - 用元组和列表理解字典分配
- android - 如何在整个活动生命周期中正确保存列表视图项中的数据?
- c# - 引发事件 c# 给出错误:没有重载匹配委托 EventHandler
- javascript - 仅使用不带名称的方法签名声明类的接口
- python - 使用 django-filter 时在 Django 中向表单添加占位符