Создание контроллера REST с объектом функций CRUD через CLI с использованием lb4 controller media
, указывающим на существующий MediaRepository для существующей модели Entity Media, обе из которых были сгенерированы также с использованием CLI lb4.
Класс MediaControllerбыл создан со всеми маршрутами REST для / media *
Маршрут / ping работает нормально, поэтому я искал какую-либо специальную конфигурацию маршрутизации для него, чтобы посмотреть, не может ли быть конфигурация с ошибками для / media, но ничего не было очевидно,
HTTP-запрос Get к / media-ответу с веб-страницей следующего содержания:
<h1>NotFoundError</h1>
<h2><em>404</em> Endpoint "GET /media" not found.</h2>
Возможно, существует какая-то фундаментальная конфигурация или настройка, которая должна произойти, но я просто не вижуit.
Класс MediaController
import {
Count,
CountSchema,
Filter,
repository,
Where,
} from '@loopback/repository';
import {
post,
param,
get,
getFilterSchemaFor,
getWhereSchemaFor,
patch,
put,
del,
requestBody, Request, RestBindings, ResponseObject
} from '@loopback/rest';
import { Media } from '../models';
import { MediaRepository } from '../repositories';
export class MediaController {
constructor(
@repository(MediaRepository)
public mediaRepository: MediaRepository,
) { }
@post('/media', {
responses: {
'200': {
description: 'Media model instance',
content: { 'application/json': { schema: { 'x-ts-type': Media } } },
},
},
})
async create(@requestBody() media: Media): Promise<Media> {
return await this.mediaRepository.create(media);
}
@get('/media/count', {
responses: {
'200': {
description: 'Media model count',
content: { 'application/json': { schema: CountSchema } },
},
},
})
async count(
@param.query.object('where', getWhereSchemaFor(Media)) where?: Where<Media>,
): Promise<Count> {
return await this.mediaRepository.count();
}
@get('/media', {
responses: {
'200': {
description: 'Array of Media model instances',
content: {
'application/json': {
schema: { type: 'array', items: { 'x-ts-type': Media } },
},
},
},
},
})
async find(
@param.query.object('filter', getFilterSchemaFor(Media)) filter?: Filter<Media>,
): Promise<Media[]> {
return await this.mediaRepository.find(filter);
}
@patch('/media', {
responses: {
'200': {
description: 'Media PATCH success count',
content: { 'application/json': { schema: CountSchema } },
},
},
})
async updateAll(
@requestBody() media: Media,
@param.query.object('where', getWhereSchemaFor(Media)) where?: Where<Media>,
): Promise<Count> {
return await this.mediaRepository.updateAll(media, where);
}
@get('/media/{id}', {
responses: {
'200': {
description: 'Media model instance',
content: { 'application/json': { schema: { 'x-ts-type': Media } } },
},
},
})
async findById(@param.path.string('id') id: string): Promise<Media> {
return await this.mediaRepository.findById(id);
}
@patch('/media/{id}', {
responses: {
'204': {
description: 'Media PATCH success',
},
},
})
async updateById(
@param.path.string('id') id: string,
@requestBody() media: Media,
): Promise<void> {
await this.mediaRepository.updateById(id, media);
}
@put('/media/{id}', {
responses: {
'204': {
description: 'Media PUT success',
},
},
})
async replaceById(
@param.path.string('id') id: string,
@requestBody() media: Media,
): Promise<void> {
await this.mediaRepository.replaceById(id, media);
}
@del('/media/{id}', {
responses: {
'204': {
description: 'Media DELETE success',
},
},
})
async deleteById(@param.path.string('id') id: string): Promise<void> {
await this.mediaRepository.deleteById(id);
}
}