YQL Open Data Table Reference Sample メモ その1
YQLは便利だ。データ整形はこれが一番速い。自分でもTableを作れるようになればもっと快適なpipesライフが送れるはず。Referenceを眺めつつ理解を深めるのも良いけど、やっぱりSampleを眺めるのが一番手っ取り早い。と言う訳でReferenceのSampleから分かる事をメモ。
Spotify Artist Search。execute要素のない基本的な形。
<?xml version="1.0" encoding="UTF-8"?> <table xmlns="http://query.yahooapis.com/v1/schema/table.xsd"> <meta> <sampleQuery>SELECT * FROM {table} where artist = 'The New Pornographers';</sampleQuery> <author>Max Manders</author> <documentationURL>http://developer.spotify.com/en/metadata-api/overview/</documentationURL> <description>A YQL wrapper around the Spotify Metadata API.</description> </meta> <bindings> <select itemPath="artists.artist" produces="XML"> <urls> <url>http://ws.spotify.com/search/1/artist?q={artist}</url> </urls> <inputs> <key id="artist" type="xs:string" paramType="path" /> </inputs> </select> <select itemPath="json.artists.artist" produces="JSON"> <urls> <url>http://ws.spotify.com/search/1/artist.json?q={artist}</url> </urls> <inputs> <key id="artist" type="xs:string" paramType="path" /> </inputs> </select> </bindings> </table>
table
xmlns属性(名前空間)はつけておかないと実行時に怒られる。どっかから雛形をコピペしてきた時は忘れずに。
meta
特筆する事は何もない。強いて言えばsampleQuery要素の{table}くらいか。これには実行時にtable名が自動で入る。
select
select文を定義する。Referenceにはinsert、update、deleteもあるんだけどYQLからdata table自体を操作する事が果たしてあるんだろうか。
itemPath
返すdataに対して指定する。上記の例で言うと
<artists> <artist> <name></name> </artist> </artists>
というselect文の実行結果が返ってくる場合、itemPath="artists.artist"を指定すると実行結果は
<name></name>
となる。
url
特筆する事は何もなし。{artist}はkey要素で述べる。
key
tableで使用するパラメーターを指定。URL要素で{artist}という使い方をする。