我使用LocomotiveCMS创建了一个网站,我创建了两个名为Photo and Gallery的内容类型,这些内容类型之间有关系,因此我可以在我的网站上创建图片库。
我目前正在寻找使用RESTful API,以便在Photo遍历文件时为Photo创建多个内容条目。
我可以毫无问题地连接到API并修改网站等。
我认为新内容条目的cURL命令采用以下形式:
curl -X POST -d 'photo[image_id]=blah&photo[gallery]=1234&photo[file]=<filepath>photo[published]=true' 'http://<your site>/locomotive/api/current_site.json?auth_token=xxxx'
但是我不确定如何在这个命令中传递一个文件,我现在已经替换了这个,你会怎么写这个部分?
我的字段设置如下:Photo:
fields:
- image_id:
label: Image ID
type: string
required: true
localized: false
- file: # Name of the field
label: File
type: file
required: true
localized: false
- gallery: # Name of the field
label: Gallery
type: belongs_to
required: true
localized: false
# Slug of the target content type (eg post if this content type is a comment)
class_name: gallery
答案 0 :(得分:0)
我最终制作了一个Ruby脚本来解析文件并通过将帖子数据发送到
来上传它们/locomotive/api/content_types/photos/entries.json?auth_token=XXXX
答案 1 :(得分:0)
以下代码可能有助于完成此任务:
data = {
content_entry: {
title: 'Title',
image: File.new('media/images/screen.png'),
}
}
HTTMultiParty.post(
"http://localhost:8080/locomotive/content_types/blogs/entries.json?auth_token=#{@token}",
query: data,
headers: { 'Content-Type' => 'application/json' }
)
我使用HTTMultiParty因为我们实际上需要做一个多部分的帖子。有关如何使用curl执行此操作的有用信息: https://github.com/locomotivecms/documentation/pull/175
要获得令牌,您需要以下内容:
HTTParty.post(
'http://localhost:8080/locomotive/api/tokens.json',
body: { api_key: 'YOUR_API_KEY_HERE' }
)
我希望有所帮助。
答案 2 :(得分:0)
现在有一个关于LocomotiveCMS的api gem,适用于2.5.x和3.x https://github.com/locomotivecms/coal
使用的属性需要以_url结尾,用于type = file https://github.com/locomotivecms/engine/pull/511/commits/f3a47ba5672b7a560e5edbef93cc9a4421192f0a的内容输入字段