我有一个mysql模式,里面充满了我想用RESTful API公开的信息,最好是在Ruby中。构建HTTP RESTful API(特定于Ruby)
我知道什么到目前为止
- “REST风格”是指以下为API一定的标准,并且不与任何特定的实现语言相关。
- 我可以使用Ruby的mysql的宝石拉,我从我的数据库
- 的西纳特拉项目似乎是建立一个API使用Ruby
一个例子一个简单的方法所需要的数据
比方说,我有一台服务器(12.34.56.78)和服务器位于
/opt/example_code/main.rb.
在我的Ruby代码,我想美国呃,以能够查询类似
12.34.56.77/customers/1234?show_ssn=true
,以便检索客户1234的记录,选择加入也显示了SSN
我不明白
我需要运行哪些基本的服务器端软件才能实现此目的?我认为我需要某种Web服务器,比如Apache或者nginx,它总是在运行?我知道你可以在Python中运行一个简单的HTTP服务器(
python -m SimpleHTTPServer
),只要我的终端窗口打开(或者我取消它),它就会运行。 Apache和nginx是类似的,但它们作为一个进程不断运行?当用户点击12.34.56.77时,如何让服务器知道它应该在
/opt/example_code
中查看我的脚本?我可以设置某种配置吗?我对HTTP端口如何工作有一个模糊的想法;我应该将某些端口设置为“指向”某些目录吗?例如,只有当他们指定端口5678将服务器知道正确地看着我
/opt/example_code
目录12.34.56.77:5678/customers/1234?show_ssn=true
当HTTP服务器终于解密请求并将其重定向到
/opt/example_code
,接下来会发生什么?我如何指示它在该目录中运行我的main.rb
文件?另外,如何将URI(“/customers...true”)传递给我的Ruby应用程序以由Sinatra解密?
我想我已经掌握了制作这个过程的各个部分,但我正在努力解决它们如何整合在一起。
感谢您的帮助!
非常有帮助,谢谢!我将探索您列出的所有资源。如果没什么问题,我可能会回来一个小问题,但这可以让我开始。 非常感谢! – user2490003
实际上有一个问题想起来 - 如果服务器有多个API用于各种服务,怎么样?所有代码都必须位于一个位置,还是配置允许根据请求的API资源(例如/ customer vs/employee)指向不同的目录? – user2490003
您可以根据需要在一台服务器上的不同位置安装尽可能多的API。这与其他Web应用程序一样。一台服务器可以托管许多Web应用程序您将需要配置此。我编辑了我的答案,以显示此配置如何查找Nginx。 –