Skip to content

@sosedoff /opentable_client.rb
Last active

Embed URL

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
OpenTable API Client - Visit http://opentable.herokuapp.com for details
require "faraday"
require "faraday_middleware"
module OpenTable
class Error < StandardError ; end
module Request
API_BASE = "http://opentable.herokuapp.com"
def connection
connection = Faraday.new(API_BASE) do |c|
c.use(Faraday::Request::UrlEncoded)
c.use(Faraday::Response::ParseJson)
c.adapter(Faraday.default_adapter)
end
end
def request(method, path, params={}, raw=false)
headers = {'Accept' => 'application/json'}
path = "/api#{path}"
response = connection.send(method, path, params) do |request|
request.url(path, params)
end
if [404, 403, 400].include?(response.status)
raise OpenTable::Error, response.body["error"]
end
raw ? response : response.body
end
def get(path, params={})
request(:get, path, params)
end
end
class Client
include Request
def countries
get("/countries")
end
def cities(country=nil)
get("/cities")
end
def restaurants(options={})
get("/restaurants", options)
end
def restaurant(id)
get("/restaurants/#{id}")
end
end
end
@himanshu-deemtech

is there is any api for open table for getting reviews of business .

@sethinsd

Can you please create a jsonp service, so we can just consume with javascript api without running into cross domain request issues? All you'd have to do is accept an additional argument, 'jsoncallback' and then wrap the data in a function call whose name is specified in that argument, returning content type application/javascript. No need for proxies.

Example jquery usage:
$.getJSON("[YOURDOMAIN]/opentable.php?jsoncallback=?",{name:place.name,zip:zip}).done(function(data) {
if(data.count>0) {
//process data
}
});

opentable.php file:

<?php
header("Content-Type: application/javascript");
echo $_REQUEST['jsoncallback']."(";
readfile("http://opentable.heroku.com/api/restaurants?name=".rawurlencode($_REQUEST['name'])."&zip=".rawurlencode($_REQUEST['zip']));
echo ");";
?>

I'm currently using this, but having to host the php file on my server.

@mtaylorSF

Is there any search available?
send back all restaurants with 7pm reservation for a given date

@parthasundaram

I presume this is just a search API. There are no API's for locking a slot or making a reservation. Correct?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.