У меня есть данные json по этому адресу:
http://localhost:3000/api/v1/apisearch
Эти данные json генерируются с помощью гем-файла винограда https://github.com/inridea/grape:
class API_v1 < Grape::API
version 'v1', :using => :path, :vendor => 'myapp', :format => :json
get :apisearch do
Object.search({query: "*#{params[:q]}*"}).map{ |object| {id: object.title, text: object.description } }
end
end
У меня есть поисковая система, которая получает данные с этого адреса с помощью select2.
Это мой файл coffescript:
jQuery ->
$('#query_txt').select2
width: 'resolve'
allowClear: true
minimumInputLength: 2
ajax:
url: "api/v1/apisearch"
dataType: 'json'
data: (term, page) -> {q: term}
results: (data, page) ->
results: data
Скрипт работает очень хорошо, но я хотел бы защитить этот адрес от внешних запросов.
Я не хочу разрешать пользователю, если тип http://localhost:3000/api/v1/apisearch
может получить доступ к этим данным. Доступ к этим данным может получить только моя внутренняя поисковая система из моего собственного приложения.
Как я могу ограничить доступ к данным только для моего собственного приложения из винограда?
Спасибо