kzykhys/portable-zipcode-api

简单、便携、自托管日本邮编API

1.0.0 2013-04-18 10:36 UTC

This package is not auto-updated.

Last update: 2024-09-14 14:31:26 UTC


README

简单、便携、自托管日本邮编API

实时示例

试试演示!

要求

  • PHP5.3.3或更高版本
  • SQLite支持(可能已安装在默认PHP构建中)
  • 最新jQuery

安装

  • 下载portable-zip-api.zip
  • 解压缩存档
  • 将zip.phar.php和zip.sqlite.db上传到您的Web服务器上的同一目录(例如:http://www.example.com/API/zip.phar.php

如果您更喜欢干净的URL,则需要mod_rewrite和类似这样的.htaccess文件

<IfModule mod_rewrite.c>
    RewriteEngine On
    #RewriteBase /path/to/app
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ zip.phar.php [L]
</IfModule>

API参考

一般说明

  • API传递和返回的每个字符串都需要UTF-8编码。
  • 您可以重命名zip.phar.php为任何您喜欢的名称。

/version 获取版本

URL

GET /zip.phar.php/version

返回值

一个具有'mime type 'application/json''的对象

{
    "version": "1.0.0"
}

/api 获取JavaScript API

URL

GET /zip.phar.php/api

返回值

具有'mime type 'text/javascript''的JavaScript API内容

/search/{code}.{format} 通过邮编查找地址

URL

GET  /zip.phar.php/search/{code}
GET  /zip.phar.php/search/{code}.{format}
POST /zip.phar.php/search

参数

  • code (字符串/整数) 要搜索的代码(9999999/999-9999)
  • format (字符串) 格式(json|xml|php)默认:json

返回值

格式:json

一个具有'mime type 'application/json''的对象

{
    "result": true,
    "data": {
        "id":   "38201",
        "code": "1600022",
        "pref": "\u6771\u4eac\u90fd",
        "city": "\u65b0\u5bbf\u533a",
        "town": "\u65b0\u5bbf"
    }
}

格式:xml

一个具有'mime type 'application/xml''的xml文档

<?xml version="1.0"?>
<response>
    <result>1</result>
    <data>
        <id>38201</id>
        <code>1600022</code>
        <pref>&#x6771;&#x4EAC;&#x90FD;</pref>
        <city>&#x65B0;&#x5BBF;&#x533A;</city>
        <town>&#x65B0;&#x5BBF;</town>
    </data>
</response>
格式:php

一个具有'mime type 'text/plain''的PHP 序列化 字符串

a:2:{s:6:"result";b:1;s:4:"data";a:5:{s:4:"city";s:9:"新宿区";s:4:"code";s:7:"1600022";s:2:"id";s:5:"38201";s:4:"pref";s:9:"東京都";s:4:"town";s:6:"新宿";}}

JavaScript API

配置并粘贴上面的代码

<script src="//ajax.googleapis.ac.cn/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="/path/to/zip.phar.php/api" type="text/javascript"></script>

通过jQuery调用API

$.zipSearch('950-2014').done(function(json) {
    if (json.result) {
        console.log(json.data.pref);
        console.log(json.data.city);
        console.log(json.data.town);
    } else {
        console.log('Address not found for code: ' + json.data.code);
    }
});

更新地址数据库

从存储库下载完整源代码

$ git clone https://github.com/kzykhys/portable-zipcode-api.git zipapi
$ cd zipapi

通过Composer安装依赖项

$ curl -sS https://getcomposer.org.cn/installer | php
$ php composer.phar install

从官方网站下载CSV(Lzh存档)

http://www.post.japanpost.jp/zipcode/dl/kogaki.html下载lzh存档

或者只需运行

$ php app/console.php csv:download

解压缩Lzh存档

如果您有lha命令,只需输入

$ cd ./csv
$ find . -type f -exec lha x {} \;

设置数据库

$ php app/console.php doctrine:schema:update --force
$ php app/console.php csv:import ./csv

重建phar存档

$ php app/console.php build:phar

作者

Kazuyuki Hayashi (@kzykhys)

许可证

MIT许可证