问题是关于JSON API规范以及请求的正确处理方式(我正在使用ruby on rails和json api resources gem,但这还是一个普遍的问题,我知道如何实现它,我只想遵循JSON的规则API位于:http : //jsonapi.org/format/)
情况一:
www.library.com/shelves?include=books情况2:
我想获取所有书籍,但仅获取标记为未读的书籍
我应该使用的get是:
www.library.com/books?filter[unread]=true
设计包含未读书籍的所有书架的要求的正确方法是什么?
想不通这个
www.library.com/shelves?include=books&filter[books.unread]=true ?
www.library.com/shelves?include=unread_books?<-必须指定其他资源,即未读的书
www.library.com/shelves?filter[books.unread]=true ?
最正确的方法是什么?
编辑
与我的技术负责人和其他一些程序员交谈后,在这种情况下,最优先选择第一个选项
我有如下代码:
\n\n interface Item {\n hours: number,\n minutes: number,\n }\n\n interface DataPoint {\n length: number,\n conversation: {\n a: number,\n b: number,\n [key: string]: number,\n }\n }\n\n interface DecoratedDataPoint {\n length: Item,\n conversation: {\n a: Item,\n b: Item,\n [key: string]: Item,\n }\n }\nRun Code Online (Sandbox Code Playgroud)\n\n我有一个像下面这样的函数,它使用了 lodashmapValues函数
\n function dataPointItem(val: number, total: number): Item {\n return {\n hours: Math.floor(val/60),\n minutes: val%60,\n percentage: Math.round((val/total)*100),\n }\n }\n\n function decorateDataPoint(dataPoint: DataPoint, total: number): DecoratedDataPoint {\n return {\n length: dataPointItem(dataPoint.length, number)\n conversation: _.mapValues(dataPoint.conversation, …Run Code Online (Sandbox Code Playgroud) 我在中定义了两项服务storage.yml
amazon:
service: S3
bucket: bucket1
region: eu-central-1
access_key_id: 321
secret_access_key: 321
unsafe_files:
service: S3
bucket: unsafe-files
region: eu-central-1
access_key_id: 123
secret_access_key: 123
Run Code Online (Sandbox Code Playgroud)
我对某些文件使用亚马逊服务,我想unsafe_files对其他文件使用该服务,以便我可以将其放入另一个s3存储桶中。
使用该服务的模型unsafe_files如下所示(非常简单):
class Customer < ActiveRecord::Base
belongs_to :customer_image
end
Run Code Online (Sandbox Code Playgroud)
class CustomerImage < Image
has_one_attached :file, service: Rails.configuration.settings[:unsafe_files_service]
end
Run Code Online (Sandbox Code Playgroud)
Rails.configuration.settings[:unsafe_files_service]只是unsafe_files
application.rb在我正在设置的轨道上
config.active_storage.service = :amazon因此默认情况下它使用amazon定义的服务storage.yml
现在我想使用 直接上传文件form_with,也很简单:
<%= form_with model: [@customer, CustomerImage.new] do |form| %>
<%=
form.file_field :file,
accept: 'image/jpeg',
direct_upload: true,
multipart: …Run Code Online (Sandbox Code Playgroud)