从 Bootstrap 前端调用 Rails JSON-API
Calling a Rails JSON-API from a Bootstrap Frontend
这可能是一个愚蠢的问题,但你能告诉我如何从我现有的 Rails JSON-API 服务器调用 'endpoints' Bootstrap 页。
Bootstrap 页面是否必须位于 API 服务器的视图文件夹中,如果是,我该如何调用控制器并将接收到的 JSON 放入我的前端元素中?
暂时谢谢,希望你明白我的意思。
您可能想看看 rake routes
,它会向您显示可用的路线。
所以本质上是向客户端发出请求,也许在某些 js 中到特定端点,然后该端点将 return 数据,您可以使用这些数据在客户端做任何您想做的事情。
您很可能不会从您的视图中调用您的端点,通常您会有一个单独的 js 文件,但如果您真的想要,可以将一些 js 添加到您的视图并直接从那里调用您的端点.
以 blogs
的脚手架为例 rails routes
(rake routes
) 您可以看到在 routes.rb
中定义的所有 "endpoints":
Prefix Verb URI Pattern Controller#Action
blogs GET /blogs(.:format) blogs#index
POST /blogs(.:format) blogs#create
new_blog GET /blogs/new(.:format) blogs#new
edit_blog GET /blogs/:id/edit(.:format) blogs#edit
blog GET /blogs/:id(.:format) blogs#show
PATCH /blogs/:id(.:format) blogs#update
PUT /blogs/:id(.:format) blogs#update
DELETE /blogs/:id(.:format) blogs#destroy
如果您看到 blogs GET /blogs(.:format) blogs#index
通过 GET 请求为您提供所有 blogs
。
这应该会为您带来 API:
中的所有 blogs
使用普通 Javascript
var request = new XMLHttpRequest();
request.open('GET', 'localhost:3000/blogs', true);
request.onload = function() {
if (request.status >= 200 && request.status < 400) {
var data = JSON.parse(request.responseText)
...
} else {
...
}
};
request.onerror = function() {
...
};
request.send();
同时使用 Javascript fetch
:
fetch('localhost:3000/blogs', {
...
}).then(function(response) {
console.log(response)
}).catch(function(err) {
console.log(err)
});
使用jQuery:
$.ajax({
url: 'localhost:3000/blogs',
dataType: 'script',
success: function(result) {
console.log(result)
},
});
然后您可以根据需要继续插入、更新and/or删除数据。
这可能是一个愚蠢的问题,但你能告诉我如何从我现有的 Rails JSON-API 服务器调用 'endpoints' Bootstrap 页。 Bootstrap 页面是否必须位于 API 服务器的视图文件夹中,如果是,我该如何调用控制器并将接收到的 JSON 放入我的前端元素中?
暂时谢谢,希望你明白我的意思。
您可能想看看 rake routes
,它会向您显示可用的路线。
所以本质上是向客户端发出请求,也许在某些 js 中到特定端点,然后该端点将 return 数据,您可以使用这些数据在客户端做任何您想做的事情。
您很可能不会从您的视图中调用您的端点,通常您会有一个单独的 js 文件,但如果您真的想要,可以将一些 js 添加到您的视图并直接从那里调用您的端点.
以 blogs
的脚手架为例 rails routes
(rake routes
) 您可以看到在 routes.rb
中定义的所有 "endpoints":
Prefix Verb URI Pattern Controller#Action
blogs GET /blogs(.:format) blogs#index
POST /blogs(.:format) blogs#create
new_blog GET /blogs/new(.:format) blogs#new
edit_blog GET /blogs/:id/edit(.:format) blogs#edit
blog GET /blogs/:id(.:format) blogs#show
PATCH /blogs/:id(.:format) blogs#update
PUT /blogs/:id(.:format) blogs#update
DELETE /blogs/:id(.:format) blogs#destroy
如果您看到 blogs GET /blogs(.:format) blogs#index
通过 GET 请求为您提供所有 blogs
。
这应该会为您带来 API:
中的所有blogs
使用普通 Javascript
var request = new XMLHttpRequest();
request.open('GET', 'localhost:3000/blogs', true);
request.onload = function() {
if (request.status >= 200 && request.status < 400) {
var data = JSON.parse(request.responseText)
...
} else {
...
}
};
request.onerror = function() {
...
};
request.send();
同时使用 Javascript fetch
:
fetch('localhost:3000/blogs', {
...
}).then(function(response) {
console.log(response)
}).catch(function(err) {
console.log(err)
});
使用jQuery:
$.ajax({
url: 'localhost:3000/blogs',
dataType: 'script',
success: function(result) {
console.log(result)
},
});
然后您可以根据需要继续插入、更新and/or删除数据。