构建HTTP RESTful API(特定于Ruby)
我有一个mysql模式,其中包含了我想用RESTful API公开的信息,最好是用Ruby 到目前为止我所知道的构建HTTP RESTful API(特定于Ruby),ruby,api,http,rest,restful-url,Ruby,Api,Http,Rest,Restful Url,我有一个mysql模式,其中包含了我想用RESTful API公开的信息,最好是用Ruby 到目前为止我所知道的 “RESTful”是指遵循API的特定标准,与任何特定的实现语言都没有关联 我可以使用Ruby中的mysql gem从数据库中提取所需的数据 Sinatra项目似乎是使用Ruby设置API的一种简单方法 示例 假设我有一个服务器(12.34.56.78),服务器上的ruby代码位于 /opt/example_code/main.rb. 我希望用户能够查询以下内容 12.34.
- “RESTful”是指遵循API的特定标准,与任何特定的实现语言都没有关联
- 我可以使用Ruby中的mysql gem从数据库中提取所需的数据
- Sinatra项目似乎是使用Ruby设置API的一种简单方法
/opt/example_code/main.rb.
我希望用户能够查询以下内容
12.34.56.77/customers/1234?show_ssn=true
要检索客户1234的记录,请选择同时显示SSN
我不明白的事
python-msimplehttpserver
),只要我的终端窗口打开(或者我取消它),它就可以运行。Apache和nginx是否类似于此,但它们作为一个进程持续运行/opt/example\u code
中查找我的脚本?有什么配置我可以设置吗
我对HTTP端口如何工作有一个模糊的概念;我应该将某些端口设置为“指向”某些目录吗?例如,只有当它们指定端口5678时,服务器才知道如何正确地查看我的/opt/example_code
目录
12.34.56.77:5678/customers/1234?show_ssn=true
/opt/example\u code
时,接下来会发生什么?如何指示它在该目录中运行我的main.rb
文件?另外,如何将URI(“/customers…true”)传递到我的ruby应用程序,由Sinatra解密非常有帮助,谢谢!我将浏览您列出的所有资源。如果可以的话,我可能会再问一两个小问题,但这对我来说是一个相当大的问题。非常感谢!实际上,我想到了一个问题——如果一台服务器要为各种服务提供多个API,该怎么办?所有这些的代码是否都必须在一个位置,或者配置是否允许根据请求的API资源(例如/客户/员工)指向不同的目录?您可以在一台服务器上、不同的位置拥有任意多个API。这与任何其他web应用程序的情况相同。一台服务器可以承载多个web应用程序。您需要对此进行配置。我编辑了我的答案,以显示此配置如何查找Nginx。
server {
listen 80;
server_name site1.com;
}
server {
listen 443;
server_name site1.com;
root /path/to/application/public-folder;
passenger_enabled on;
}
server {
listen 80;
server_name site2.com;
}
server {
listen 443;
server_name site2.com;
root /path/to/application/public-folder;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect off;
proxy_pass http://unicorn_cluster;
}
}