我正在构建一个响应http请求的应用程序。 到目前为止,检查日志文件和表是可以的。我使用curl发送请求,如:
curl -u test -X POST http://127.0.0.1:3000/api/information -d ''
但现在我包含了某种反应机制。我现在的问题是我必须使用哪个端口作为我的回复? 它是端口80(std http端口)吗?是否有一些CLI工具可以处理会话?
答案 0 :(得分:0)
端口取决于您的配置以及启动服务器时使用的参数。默认情况下,rails在端口3000上启动 - 在大多数情况下,使用端口80将需要使用sudo
。启动rails服务器时,您可以在输出中看到端口。
$ rails server
=> Booting WEBrick
=> Rails 4.2.1 application starting in development on http://localhost:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
有几个浏览器扩展名,例如Postman,它们提供了一个用于发送REST请求的GUI - 这比在怪物cURL调用中将它们全部拼凑起来要容易得多。
这对于调试非常有用 - 但手动测试应用程序非常容易出错,并且已知是一种不完整且有缺陷的方法*。相反,您应该考虑使用自动化测试。
的示例# spec/requests/pets_api_spec.rb
require "rails_helper"
RSpec.describe "Pets API", type: :request do
subject { response }
let(:json) { JSON.parse(response.body, symbolize_keys: true) }
let(:pet) { Pet.create(name: 'Spot') }
describe "viewing a Pet" do
before { get pet_path(pet) }
it { should have_http_status :ok }
it "has the correct JSON response" do
expect(json[:type]).to eq 'Pet'
expect(json[:data][:name]).to eq 'Spot'
end
end
describe "creating a Pet" do
let(:valid_session) do
# setup session here.
end
before do
post "/pets", { type: 'Pet', data: { name: 'Doge' } }, valid_session
end
it { should have_http_status :created }
# ...
end
end