我在运行代码时被搞糊涂了。我试图为搜索书籍创建一个API路径,当我应用POST方法时,它可以工作并完成我想要达到的目标,但当我应用GET方法时,它显示了以下错误:
CastError: Cast to ObjectId failed for value "search" (type string) at path "_id" for model "bookmodel"
at model.Query.exec (E:\FullStacks\BookStore\node_modules\mongoose\lib\query.js:4803:2
在使用WebAPI 2时,我希望获得关于最佳实践的建议和建议:
假设我有两个控制器(用户和书籍),它希望接受以下这些路线:
/users/{user_id}/books <= books owned by user_id
/books <= all books
/books/{book_id} <= book from id
具体处理/users/{user_id}/books的最佳实践是什么?我在REST中处理许多自定义路由,所以我使用了RoutePrefix和动词“路由on方法”。
提前谢谢!我总是试图为共同的情况找到更好的解决办法和做法。
因此,我正在构建一个Rails站点,它需要基于两种不同类型的路由
我有一个语言模型和一个分类模型
因此,我需要能够使用语言路径/ruby查看顶级的ruby资源,也可以使用/books查看所有语言的顶级书籍。
我试过这样的路线
get '/:language', to: "top_voted#language"
get '/:category', to: "top_voted#category"
问题在于,逻辑无法找出两者之间的区别,并在后端引起了一些冲突。
我也试过这个
Language.all.each do |language
因此,我的产品(书籍)被过滤成虚构/非虚构,并为每一个子类别,我已经制定了过滤和显示产品的所有逻辑,但我挣扎的是命名路线和控制器为它。
我想使用一个资源BookController与标准的7方法,并以某种方式将标准、虚构/非虚构或特定的子类别id传递到索引方法中,然后调用返回适当集合的BookService类。
我不认为张贴我的代码会有很大帮助,但以防万一,这些是我的BookService方法
/*
Returns a collection of n random recommended books
n = $quantity
*/
public function ge
就嵌套资源而言,我的应用程序对上下文变得非常敏感。
例如,假设我的应用程序是图书管理员应用程序,我可能有这样的路径:
resources :books
resources :libraries do
resources :books
end
我希望它是这样的,如果您访问/books,您会看到与您相关的书籍,登录用户。无论是你已经退房的书,还是你最喜欢的书,或者是你喜欢的书。
但是当您访问/libraries/:id/books时,您应该会看到与该图书馆相关的书籍。
现在,在控制器中很容易做到这一点:
def index
if params[:library_id]
@libra