自作 Web API でデータを JSONP で返す場合

GET メソッドや POST メソッドで callback 関数をサーバー側で引き取り、JSON を引数に受け取る関数名を出力する必要があることがわかった。
自分でやってみないとわからないことばかりだ。
http://www.example.com/webapi?id=1&callback=mycallback という GET メソッドで WEB API を呼び出したら、例えば、PHP とかならば、

// ユーザーに返すJSON データを作成
$json = arrayToJson(array(...));
// 引数の値を確認なしでローカル変数に代入
// $_GET['callback'] が意図している値かどうかは確認する必要がある
$callback = $_GET['callback'];

header(...);
header(...);
header(...);
printf('%s(%s);', $callback, $json);

function arrayToJson(resultArray) {
    ...
    return $json;
}

のようにユーザーに返す必要がある。
理由は、callback 関数(上記でいえば、callback=mycallback)の箇所を、jQuery などが自動生成して内部処理をしているからだ。
いちから Ajax の処理を記述するのならば、JSONP の関数名はハードコーティングをしてしまってもいいのかもしれない。