首页
/ ParseResource 技术文档

ParseResource 技术文档

2024-12-26 10:03:06作者:庞眉杨Will

1. 安装指南

1.1 通过 Gemfile 安装

在你的 Gemfile 中添加以下内容:

gem "kaminari" # 可选,用于分页支持
gem "parse_resource", "~> 1.8.0"

然后运行 bundle install 来安装依赖。

1.2 通过 gem install 安装

你也可以直接使用 gem install 命令来安装:

gem install kaminari # 可选,用于分页支持
gem install parse_resource

1.3 配置 Parse.com 应用

在 Parse.com 上创建一个账户并创建一个应用。然后复制 app_idmaster_key 到一个名为 parse_resource.yml 的文件中。如果你使用的是 Rails 应用,请将此文件放置在 config 文件夹中。

development:
  app_id: 1234567890
  master_key: abcdefgh

test:
  app_id: 1234567890
  master_key: abcdefgh

production:
  app_id: 1234567890
  master_key: abcdefgh

如果你将 parse_resource.yml 添加到 .gitignore 中,ParseResource 会从环境变量中查找 API 密钥。如果你使用 Heroku,可以通过以下命令设置环境变量:

heroku config:set PARSE_RESOURCE_APPLICATION_ID=1234567890
heroku config:set PARSE_RESOURCE_MASTER_KEY=abcdefgh

1.4 非 Rails 应用的配置

在非 Rails 应用中,你需要在某个地方(最好是在初始化文件中)包含以下代码:

ParseResource::Base.load!("your_app_id", "your_master_key")

2. 项目的使用说明

2.1 创建模型

你可以通过继承 ParseResource::Base 来创建一个模型:

class Post < ParseResource::Base
  fields :title, :author, :body

  validates_presence_of :title
end

2.2 创建、更新和删除对象

p = Post.new

# 验证
p.valid? #=> false 
p.errors #=> #<ActiveModel::Errors:0xab71998 ... @messages={:title=>["can't be blank"]}> 
p.title = "Introducing ParseResource" #=> "Introducing ParseResource" 
p.valid? #=> true 

# 设置更多属性并保存
p.author = "Alan deLevie" 
p.body = "Ipso Lorem"
p.date = Time.now
p.save #=> true

# 更新
p.title = "[Update] Introducing ParseResource"
p.save #=> true

# 删除对象
p.destroy #=> true 
p.title #=> nil

2.3 查询对象

posts = Post.where(:author => "Arrington")
posts.each do |post|
  "#{post.title}, by #{post.author}"
end

id = "DjiH4Qffke"
p = Post.find(id) # 通过 ID 查找

# ActiveRecord 风格的查找命令
Post.find_by(:title => "Uncrunched") #=> 一个 Post 对象
Post.find_by_title("Uncrunched") #=> 一个 Post 对象
Post.find_all_by_author("Arrington") #=> 一个 Post 数组

2.4 分页支持

使用 kaminari 进行分页:

# 获取第二页结果(默认每页 25 条)
Post.page(2).where(:foo => "bar")

# 获取第二页,每页 100 条结果
Post.page(2).per(100).where(:foo => "bar")

3. 项目 API 使用文档

3.1 用户管理

由于用户在 Parse API 中是特殊的,你必须将类命名为 User 才能继承 ParseUser

class User < ParseUser
  validates_presence_of :username
  fields :name, :bio, :email
end

# 创建用户
user = User.new(:username => "adelevie")
user.password = "asecretpassword"
user.save #=> true

# 用户认证
User.authenticate("adelevie", "foooo") #=> false
User.authenticate("adelevie", "asecretpassword") #=> #<User...>

3.2 地理位置查询

class Place < ParseResource::Base
  fields :location
end

place = Place.new
place.location = ParseGeoPoint.new :latitude => 34.09300844216167, :longitude => -118.3780094460731
place.save

# 查询附近的地点
Place.near(:location, [34.09300844216167, -118.3780094460731], :maxDistanceInMiles => 10).all

3.3 文件上传

@post = Post.first()
result = Post.upload(uploaded_file.tempfile, uploaded_file.original_filename, content_type: uploaded_file.content_type)
@post.thumbnail = {"name" => result["name"], "__type" => "File", "url" => result["url"]}

4. 项目安装方式

4.1 通过 Gemfile 安装

Gemfile 中添加以下内容:

gem "kaminari" # 可选,用于分页支持
gem "parse_resource", "~> 1.8.0"

然后运行 bundle install

4.2 通过 gem install 安装

你也可以直接使用 gem install 命令来安装:

gem install kaminari # 可选,用于分页支持
gem install parse_resource

4.3 配置 Parse.com 应用

在 Parse.com 上创建一个账户并创建一个应用。然后复制 app_idmaster_key 到一个名为 parse_resource.yml 的文件中。如果你使用的是 Rails 应用,请将此文件放置在 config 文件夹中。

development:
  app_id: 1234567890
  master_key: abcdefgh

test:
  app_id: 1234567890
  master_key: abcdefgh

production:
  app_id: 1234567890
  master_key: abcdefgh

如果你将 parse_resource.yml 添加到 .gitignore 中,ParseResource 会从环境变量中查找 API 密钥。如果你使用 Heroku,可以通过以下命令设置环境变量:

heroku config:set PARSE_RESOURCE_APPLICATION_ID=1234567890
heroku config:set PARSE_RESOURCE_MASTER_KEY=abcdefgh

4.4 非 Rails 应用的配置

在非 Rails 应用中,你需要在某个地方(最好是在初始化文件中)包含以下代码:

ParseResource::Base.load!("your_app_id", "your_master_key")

通过以上步骤,你可以成功安装并配置 ParseResource,开始使用它来与 Parse.com 的 REST API 进行交互。

热门项目推荐
相关项目推荐

项目优选

收起
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
49
38
HarmonyOS-ExamplesHarmonyOS-Examples
本仓将收集和展示仓颉鸿蒙应用示例代码,欢迎大家投稿,在仓颉鸿蒙社区展现你的妙趣设计!
Cangjie
254
63
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
174
42
mybatis-plusmybatis-plus
mybatis 增强工具包,简化 CRUD 操作。 文档 http://baomidou.com 低代码组件库 http://aizuda.com
Java
16
0
open-eBackupopen-eBackup
open-eBackup是一款开源备份软件,采用集群高扩展架构,通过应用备份通用框架、并行备份等技术,为主流数据库、虚拟化、文件系统、大数据等应用提供E2E的数据备份、恢复等能力,帮助用户实现关键数据高效保护。
HTML
70
54
advanced-javaadvanced-java
Advanced-Java是一个Java进阶教程,适合用于学习Java高级特性和编程技巧。特点:内容深入、实例丰富、适合进阶学习。
JavaScript
397
102
HarmonyOS-Cangjie-CasesHarmonyOS-Cangjie-Cases
参考 HarmonyOS-Cases/Cases,提供仓颉开发鸿蒙 NEXT 应用的案例集
Cangjie
55
2
PDFMathTranslatePDFMathTranslate
PDF scientific paper translation with preserved formats - 基于 AI 完整保留排版的 PDF 文档全文双语翻译,支持 Google/DeepL/Ollama/OpenAI 等服务,提供 CLI/GUI/Docker
Python
31
3
RuoYi-Cloud-Vue3RuoYi-Cloud-Vue3
🎉 基于Spring Boot、Spring Cloud & Alibaba、Vue3 & Vite、Element Plus的分布式前后端分离微服务架构权限管理系统
Vue
26
18
topiam-eiamtopiam-eiam
开源IDaas/IAM平台,用于管理企业内员工账号、权限、身份认证、应用访问,帮助整合部署在本地或云端的内部办公系统、业务系统及三方 SaaS 系统的所有身份,实现一个账号打通所有应用的服务。
Java
19
0