获取hbase版本

curl -vi -X GET -H "Accept: text/xml" http://10.8.4.46:20550/version/cluster
1.2.6

获取集群状态:

curl -vi -X GET -H "Accept: text/xml" http://10.8.4.46:20550/status/cluster
4 live servers, 0 dead servers, 1.0000 average load

4 live servers
..........

获取hbase非系统表表名列表

curl -vi -X GET -H "Accept: text/xml" http://10.8.4.46:20550/
hbase_test
hbase_yarnlog

获取hbase所有的命名空间

curl -vi -X GET -H "Accept: text/xml" http://10.8.4.46:20550/namespaces
default
hbase

某个命名空间下表名

curl -vi -X GET -H "Accept: text/xml" http://10.8.4.46:20550/namespaces/namespace/tables

eg:curl -vi -X GET -H "Accept: text/xml" http://10.8.4.46:20550/namespaces/default/tables

hbase_test
hbase_yarnlog

获取表结构:

curl -vi -X GET -H "Accept: text/xml" http://10.8.4.46:20550/hbase_yarnlog/schema
{ NAME=> 'hbase_yarnlog', IS_META => 'false', COLUMNS => [ { NAME => 'yarnlog', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => '2147483647', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true' } ] }

获取表区域:

curl -vi -X GET -H "Accept: text/xml"  http://10.8.4.46:20550/hbase_yarnlog/regions
hbase_yarnlog,,1519360842078.cb06e1f05268947e9598702137918f0e. [
id=1519360842078
startKey=''
endKey=''
location='108443.server.bigdata.com.cn:60020'
]

获取单个行的所有列,编码格式是 Base-64 encoded,需要再解码

curl -vi -X GET -H "Accept: text/xml" http://10.8.4.46:20550/table/row

eg:

curl -vi -X GET -H "Accept: text/xml" http://10.8.4.46:20550/hbase_yarnlog/application_1516606659120_0211
* About to connect() to 10.8.4.46 port 20550 (#0)
* Trying 10.8.4.46... connected
* Connected to 10.8.4.46 (10.8.4.46) port 20550 (#0)
> GET /hbase_yarnlog/application_1516606659120_0211 HTTP/1.1
> User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.14.3.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2
> Host: 10.8.4.46:20550
> Accept: text/xml
>
< HTTP/1.1 200 OK
HTTP/1.1 200 OK
< Content-Type: text/xml
Content-Type: text/xml
< Content-Length: 4645
Content-Length: 4645

<
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><CellSet><Row key="YXBwbGljYXRpb25fMTUxNjYwNjY1OTEyMF8wMjEx"><Cell column="eWFybmxvZzpkdXJUaW1l" timestamp="1519717201909">NTMwMDA=</Cell><Cell column="eWFybmxvZzplcnJtc2c=" timestamp="1519717184359">PEVSUk9SPklORk86IFN0ZXAxX05vZGU4IGhGaWxlVG9IYmFzZSBUUkFDRTog5YWl5Y+CMD0iaGRmczovLzEwLjguNC43NDo4MDIwL3VzZXIvbHl5L2RhdGEvaGZpbGUiIFRSQUNFOiDlhaXlj4IxPUNvbmZpZ3VyYXRpb246IGNvcmUtZGVmYXVsdC54bWwsIGNvcmUtc2l0ZS54bWwsIHlhcm4tZGVmYXVsdC54bWwsIHlhcm4tc2l0ZS54bWwsIG1hcHJlZC1kZWZhdWx0LnhtbCwgbWFwcmVkLXNpdGUueG1sLCBoZGZzLWRlZmF1bHQueG1sLCBoZGZzLXNpdGUueG1sLCBoYmFzZS1kZWZhdWx0LnhtbCwgaGJhc2Utc2l0ZS54bWwgVFJBQ0U6IOWFpeWPgjI9ImhiYXNlX3Rlc3QiIElORk86IOmAu+i+kei/lOWbnuWAvD0xIElORk86IFN0ZXAxX05vZGUyIOato+W4uOe7k+adnyBJTkZPOiDnu5PmnZ/kuqTmmJMgPC9FUlJPUj4K</Cell><Cell column="eWFybmxvZzppZG1hcA==" timestamp="1519717194545">YXBwbGljYXRpb25fMTUxNjYwNjY1OTEyMF8wMjEyIA==</Cell><Cell column="eWFybmxvZzptYXhUaW1l" timestamp="1519717201909">MjAxOC0wMi0wOSAwOTo1Njo0Mw==</Cell><Cell column="eWFybmxvZzptaW5UaW1l" timestamp="1519717201909">MjAxOC0wMi0wOSAwOTo1NTo1MA==</Cell><Cell column="eWFybmxvZzpvb3ppZWFjdGlvbmlk" timestamp="1519717191278">MDAwMDAwOS0xODAyMDgxMjU0MjYyMjEtb296aWUtb296aS1XQHNwYXJr</Cell><Cell column="eWFybmxvZzpvb3ppZWpvYmlk" timestamp="1519717191278">MDAwMDAwOS0xODAyMDgxMjU0MjYyMjEtb296aWUtb296aS1X</Cell><Cell column="eWFybmxvZzpzcGFya3lhcm50YWdz" timestamp="1519717191278">b296aWUtY2Q4ZWE3MmE5YTdmNGFhOGVjMjhjMTRkMzRiNTdhYzA=</Cell><Cell column="eWFybmxvZzp0cmFkZWxvZw==" timestamp="1519717177817">SU5GTzogbG9nIHN0YXJ0OiBJTkZPOiDlvIDlp4vkuqTmmJMgIG9wSGJhc2U6b3BIYmFzZSBJTkZPOiBTdGVwMSBvcEhiYXNlIElORk86IFN0ZXAxX05vZGUxIOW8gOWniyBJTkZPOiBTdGVwMV9Ob2RlMyBTcGFya+WIneWni+WMliBUUkFDRTog5YWl5Y+CMD1fX1JFUV9fIERFQlVHOiDlvIDlp4vov57mjqVzcGFya+mbhue+pC4uLiAgREVCVUc6IEFwcE5hbWUgPSBudWxsIERFQlVHOiBzcGFya+mbhue+pOW3sui/nuaOpeWujOaIkCEgIElORk86IOmAu+i+kei/lOWbnuWAvD0xIFRSQUNFOiDlh7rlj4IwPW9yZy5hcGFjaGUuc3BhcmsuYXBpLmphdmEuSmF2YVNwYXJrQ29udGV4dEA3Y2E3OTU1MCBUUkFDRTog5Ye65Y+CMT1vcmcuYXBhY2hlLnNwYXJrLnNxbC5TcGFya1Nlc3Npb25AMjlmNGMzYzYgSU5GTzogU3RlcDFfTm9kZTQgaW5pdEhiYXNlIFRSQUNFOiDlhaXlj4IwPSIxMDg0NDcuc2VydmVyLmJpZ2RhdGEuY29tLmNuLDEwODQxOS5zZXJ2ZXIuYmlnZGF0YS5jb20uY24sMTA4NDE4LnNlcnZlci5iaWdkYXRhLmNvbS5jbiwxMDg0NDguc2VydmVyLmJpZ2RhdGEuY29tLmNuLDEwODQ3Ny5zZXJ2ZXIuYmlnZGF0YS5jb20uY24iIFRSQUNFOiDlhaXlj4IxPSIyMTgxIiBJTkZPOiDpgLvovpHov5Tlm57lgLw9MSBUUkFDRTog5Ye65Y+CMD1Db25maWd1cmF0aW9uOiBjb3JlLWRlZmF1bHQueG1sLCBjb3JlLXNpdGUueG1sLCB5YXJuLWRlZmF1bHQueG1sLCB5YXJuLXNpdGUueG1sLCBtYXByZWQtZGVmYXVsdC54bWwsIG1hcHJlZC1zaXRlLnhtbCwgaGRmcy1kZWZhdWx0LnhtbCwgaGRmcy1zaXRlLnhtbCwgaGJhc2UtZGVmYXVsdC54bWwsIGhiYXNlLXNpdGUueG1sIElORk86IFN0ZXAxX05vZGU1IHJlYWRIYmFzZSBUUkFDRTog5YWl5Y+CMD1vcmcuYXBhY2hlLnNwYXJrLmFwaS5qYXZhLkphdmFTcGFya0NvbnRleHRAN2NhNzk1NTAgVFJBQ0U6IOWFpeWPgjE9Q29uZmlndXJhdGlvbjogY29yZS1kZWZhdWx0LnhtbCwgY29yZS1zaXRlLnhtbCwgeWFybi1kZWZhdWx0LnhtbCwgeWFybi1zaXRlLnhtbCwgbWFwcmVkLWRlZmF1bHQueG1sLCBtYXByZWQtc2l0ZS54bWwsIGhkZnMtZGVmYXVsdC54bWwsIGhkZnMtc2l0ZS54bWwsIGhiYXNlLWRlZmF1bHQueG1sLCBoYmFzZS1zaXRlLnhtbCBUUkFDRTog5YWl5Y+CMj0iaGJhc2VfdGVzdCIgREVCVUc6IGhiYXNlIHRhYmxlIHJlY29yZHMgbnVtID0gNSBJTkZPOiDpgLvovpHov5Tlm57lgLw9MSBUUkFDRTog5Ye65Y+CMD1NYXBQYXJ0aXRpb25zUkREWzJdIGF0IG1hcCBhdCBQX1NwYXJrLmphdmE6NTc1IElORk86IFN0ZXAxX05vZGU3IGhmaWxlRm9ybWF0IElORk86IOmAu+i+kei/lOWbnuWAvD0xIFRSQUNFOiDlh7rlj4IwPXRjLnRlc3Qub3BIYmFzZS5vcEhiYXNlLkFfb3BIYmFzZSQxQDNjMTRjOGE4IElORk86IFN0ZXAxX05vZGU2IOeUn+aIkEhGaWxlIFRSQUNFOiDlhaXlj4IwPU1hcFBhcnRpdGlvbnNSRERbMl0gYXQgbWFwIGF0IFBfU3BhcmsuamF2YTo1NzUgVFJBQ0U6IOWFpeWPgjE9Q29uZmlndXJhdGlvbjogY29yZS1kZWZhdWx0LnhtbCwgY29yZS1zaXRlLnhtbCwgeWFybi1kZWZhdWx0LnhtbCwgeWFybi1zaXRlLnhtbCwgbWFwcmVkLWRlZmF1bHQueG1sLCBtYXByZWQtc2l0ZS54bWwsIGhkZnMtZGVmYXVsdC54bWwsIGhkZnMtc2l0ZS54bWwsIGhiYXNlLWRlZmF1bHQueG1sLCBoYmFzZS1zaXRlLnhtbCBUUkFDRTog5YWl5Y+CMj0iaGRmczovLzEwLjguNC43NDo4MDIwL3VzZXIvbHl5L2RhdGEvaGZpbGUiIFRSQUNFOiDlhaXlj4IzPXRjLnRlc3Qub3BIYmFzZS5vcEhiYXNlLkFfb3BIYmFzZSQxQDNjMTRjOGE4IElORk86IOmAu+i+kei/lOWbnuWAvD0xIDxFUlJPUj5JTkZPOiBTdGVwMV9Ob2RlOCBoRmlsZVRvSGJhc2UgVFJBQ0U6IOWFpeWPgjA9ImhkZnM6Ly8xMC44LjQuNzQ6ODAyMC* Connection #0 to host 10.8.4.46 left intact
* Closing connection #0
91c2VyL2x5eS9kYXRhL2hmaWxlIiBUUkFDRTog5YWl5Y+CMT1Db25maWd1cmF0aW9uOiBjb3JlLWRlZmF1bHQueG1sLCBjb3JlLXNpdGUueG1sLCB5YXJuLWRlZmF1bHQueG1sLCB5YXJuLXNpdGUueG1sLCBtYXByZWQtZGVmYXVsdC54bWwsIG1hcHJlZC1zaXRlLnhtbCwgaGRmcy1kZWZhdWx0LnhtbCwgaGRmcy1zaXRlLnhtbCwgaGJhc2UtZGVmYXVsdC54bWwsIGhiYXNlLXNpdGUueG1sIFRSQUNFOiDlhaXlj4IyPSJoYmFzZV90ZXN0IiBJTkZPOiDpgLvovpHov5Tlm57lgLw9MSBJTkZPOiBTdGVwMV9Ob2RlMiDmraPluLjnu5PmnZ8gSU5GTzog57uT5p2f5Lqk5piTIDwvRVJST1I+b3BIYmFzZSBJTkZPOiDohJrmnKzmiafooYzml7bpl7TvvJoxMDQ3NOavq+enkiBJTkZPOiBsb2cgZW5kOgo=</Cell></Row></CellSet>

获取单个列某个时间戳下的值。 值为Base-64编码。

curl -vi -X GET -H "Accept: text/xml" http://10.8.4.46:20550/hbase_yarnlog/application_1516606659120_0211/yarnlog:errmsg/1519717201909
* About to connect() to 10.8.4.46 port 20550 (#0)
* Trying 10.8.4.46... connected
* Connected to 10.8.4.46 (10.8.4.46) port 20550 (#0)
> GET /hbase_yarnlog/application_1516606659120_0211/yarnlog:errmsg/1519717201909 HTTP/1.1
> User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.14.3.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2
> Host: 10.8.4.46:20550
> Accept: text/xml
>
< HTTP/1.1 200 OK
HTTP/1.1 200 OK
< Content-Type: text/xml
Content-Type: text/xml
< Content-Length: 745
Content-Length: 745

<
* Connection #0 to host 10.8.4.46 left intact
* Closing connection #0
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><CellSet><Row key="YXBwbGljYXRpb25fMTUxNjYwNjY1OTEyMF8wMjEx"><Cell column="eWFybmxvZzplcnJtc2c=" timestamp="1519717184359">PEVSUk9SPklORk86IFN0ZXAxX05vZGU4IGhGaWxlVG9IYmFzZSBUUkFDRTog5YWl5Y+CMD0iaGRmczovLzEwLjguNC43NDo4MDIwL3VzZXIvbHl5L2RhdGEvaGZpbGUiIFRSQUNFOiDlhaXlj4IxPUNvbmZpZ3VyYXRpb246IGNvcmUtZGVmYXVsdC54bWwsIGNvcmUtc2l0ZS54bWwsIHlhcm4tZGVmYXVsdC54bWwsIHlhcm4tc2l0ZS54bWwsIG1hcHJlZC1kZWZhdWx0LnhtbCwgbWFwcmVkLXNpdGUueG1sLCBoZGZzLWRlZmF1bHQueG1sLCBoZGZzLXNpdGUueG1sLCBoYmFzZS1kZWZhdWx0LnhtbCwgaGJhc2Utc2l0ZS54bWwgVFJBQ0U6IOWFpeWPgjI9ImhiYXNlX3Rlc3QiIElORk86IOmAu+i+kei/lOWbnuWAvD0xIElORk86IFN0ZXAxX05vZGUyIOato+W4uOe7k+adnyBJTkZPOiDnu5PmnZ/kuqTmmJMgPC9FUlJPUj4K</Cell></Row></CellSet>

获取单个列的值。 值为Base-64编码。

curl -vi -X GET -H "Accept: text/xml" http://10.8.4.46:20550/hbase_yarnlog/application_1516606659120_0211/yarnlog:errmsg
* About to connect() to 10.8.4.46 port 20550 (#0)
* Trying 10.8.4.46... connected
* Connected to 10.8.4.46 (10.8.4.46) port 20550 (#0)
> GET /hbase_yarnlog/application_1516606659120_0211/yarnlog:errmsg HTTP/1.1
> User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.14.3.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2
> Host: 10.8.4.46:20550
> Accept: text/xml
>
< HTTP/1.1 200 OK
HTTP/1.1 200 OK
< Content-Type: text/xml
Content-Type: text/xml
< Content-Length: 745
Content-Length: 745

<
* Connection #0 to host 10.8.4.46 left intact
* Closing connection #0
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><CellSet><Row key="YXBwbGljYXRpb25fMTUxNjYwNjY1OTEyMF8wMjEx"><Cell column="eWFybmxvZzplcnJtc2c=" timestamp="1519717184359">PEVSUk9SPklORk86IFN0ZXAxX05vZGU4IGhGaWxlVG9IYmFzZSBUUkFDRTog5YWl5Y+CMD0iaGRmczovLzEwLjguNC43NDo4MDIwL3VzZXIvbHl5L2RhdGEvaGZpbGUiIFRSQUNFOiDlhaXlj4IxPUNvbmZpZ3VyYXRpb246IGNvcmUtZGVmYXVsdC54bWwsIGNvcmUtc2l0ZS54bWwsIHlhcm4tZGVmYXVsdC54bWwsIHlhcm4tc2l0ZS54bWwsIG1hcHJlZC1kZWZhdWx0LnhtbCwgbWFwcmVkLXNpdGUueG1sLCBoZGZzLWRlZmF1bHQueG1sLCBoZGZzLXNpdGUueG1sLCBoYmFzZS1kZWZhdWx0LnhtbCwgaGJhc2Utc2l0ZS54bWwgVFJBQ0U6IOWFpeWPgjI9ImhiYXNlX3Rlc3QiIElORk86IOmAu+i+kei/lOWbnuWAvD0xIElORk86IFN0ZXAxX05vZGUyIOato+W4uOe7k+adnyBJTkZPOiDnu5PmnZ/kuqTmmJMgPC9FUlJPUj4K</Cell></Row></CellSet>

创建scanner 扫描对象,batch="100"即每批次扫描100行,值为Base-64编码

curl -vi -X PUT -H "Accept: text/xml" -H "Content-Type: text/xml" -d '<Scanner batch="100"/>' http://10.8.4.46:20550/hbase_yarnlog/scanner/
* About to connect() to 10.8.4.46 port 20550 (#0)
* Trying 10.8.4.46... connected
* Connected to 10.8.4.46 (10.8.4.46) port 20550 (#0)
> PUT /hbase_yarnlog/scanner/ HTTP/1.1
> User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.14.3.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2
> Host: 10.8.4.46:20550
> Accept: text/xml
> Content-Type: text/xml
> Content-Length: 22
>
< HTTP/1.1 201 Created
HTTP/1.1 201 Created
< Location: http://10.8.4.46:20550/hbase_yarnlog/scanner/1520413092046101ffa12
Location: http://10.8.4.46:20550/hbase_yarnlog/scanner/1520413092046101ffa12
< Content-Length: 0
Content-Length: 0

<
* Connection #0 to host 10.8.4.46 left intact
* Closing connection #0

curl -vi -X GET -H "Accept: text/xml" http://10.8.4.46:20550/hbase_yarnlog/scanner/1520413092046101ffa12
* About to connect() to 10.8.4.46 port 20550 (#0)
* Trying 10.8.4.46... connected
* Connected to 10.8.4.46 (10.8.4.46) port 20550 (#0)
> GET /hbase_yarnlog/scanner/1520413092046101ffa12 HTTP/1.1
> User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.14.3.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2
> Host: 10.8.4.46:20550
> Accept: text/xml
>
< HTTP/1.1 200 OK
HTTP/1.1 200 OK
< Cache-Control: no-cache
Cache-Control: no-cache
< Content-Type: text/xml
Content-Type: text/xml
< Content-Length: 17834
Content-Length: 17834

<
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><CellSet><Row key="YXBwbGljYXRpb25fMTUxNjYwNjY1OTEyMF8wMjEx"><Cell column="eWFybmxvZzpkdXJUaW1l" timestamp="1519717201909">NTMwMDA=</Cell><Cell column="eWFybmxvZzplcnJtc2c=" timestamp="1519717184359">PEVSUk9SPklORk86IFN0ZXAxX05vZGU4IGhGaWxlVG9IYmFzZSBUUkFDRTog5YWl5Y+CMD0iaGRmczovLzEwLjguNC43NDo4MDIwL3VzZXIvbHl5L2RhdGEvaGZpbGUiIFRSQUNFOiDlhaXlj4IxPUNvbmZpZ3VyYXRpb246IGNvcmUtZGVmYXVsdC54bWwsIGNvcmUtc2l0ZS54bWwsIHlhcm4tZGVmYXVsdC54bWwsIHlhcm4tc2l0ZS54bWwsIG1hcHJlZC1kZWZhdWx0LnhtbCwgbWFwcmVkLXNpdGUueG1sLCBoZGZzLWRlZmF1bHQueG1sLCBoZGZzLXNpdGUueG1sLCBoYmFzZS1kZWZhdWx0LnhtbCwgaGJhc2Utc2l0ZS54bWwgVFJBQ0U6IOWFpeWPgjI9ImhiYXNlX3Rlc3QiIElORk86IOmAu+i+kei/lOWbnuWAvD0xIElORk86IFN0ZXAxX05vZGUyIOato+W4uOe7k+adnyBJTkZPOiDnu5PmnZ/kuqTmmJMgPC9FUlJPUj4K</Cell><Cell column="eWFybmxvZzppZG1hcA==" timestamp="1519717194545">YXBwbGljYXRpb25fMTUxNjYwNjY1OTEyMF8wMjEyIA==

删除scanner 扫描对象,释放资源

curl -vi -X DELETE -H "Accept: text/xml" http://10.8.4.46:20550/hbase_yarnlog/scanner/1520413092046101ffa12

* About to connect() to 10.8.4.46 port 20550 (#0)
* Trying 10.8.4.46... connected
* Connected to 10.8.4.46 (10.8.4.46) port 20550 (#0)
> DELETE /hbase_yarnlog/scanner/1520413092046101ffa12 HTTP/1.1
> User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.14.3.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2
> Host: 10.8.4.46:20550
> Accept: text/xml
>
< HTTP/1.1 200 OK
HTTP/1.1 200 OK
< Content-Length: 0
Content-Length: 0

<
* Connection #0 to host 10.8.4.46 left intact
* Closing connection #0

Hbase restFul API的更多相关文章

  1. Hbase RESTFul API创建namespace返回500

    1.使用官方提供的/namespaces/namespace创建namespace失败,返回500,官方提供示例:/namespaces/namespace POST 创建一个新的namespace. ...

  2. (转载) RESTful API 设计指南

    作者: 阮一峰 日期: 2014年5月22日 网络应用程序,分为前端和后端两个部分.当前的发展趋势,就是前端设备层出不穷(手机.平板.桌面电脑.其他专用设备......). 因此,必须有一种统一的机制 ...

  3. Node.js实现RESTful api,express or koa?

    文章导读: 一.what's RESTful API 二.Express RESTful API 三.KOA RESTful API 四.express还是koa? 五.参考资料 一.what's R ...

  4. Restful Api 最佳实践

    Web APIs has become an very important topic in the last year. We at M-Way Solutions are working ever ...

  5. 基于轻量型Web服务器Raspkate的RESTful API的实现

    在上一篇文章中,我们已经了解了Raspkate这一轻量型Web服务器,今天,我们再一起了解下如何基于Raspkate实现简单的RESTful API. 模块 首先让我们了解一下"模块&quo ...

  6. RESTful Api 身份认证安全性设计

    REST是一种软件架构风格.RESTful Api 是基于 HTTP 协议的 Api,是无状态传输.它的核心是将所有的 Api 都理解为一个网络资源.将所有的客户端和服务器的状态转移(动作)封装到 H ...

  7. 深入理解 RESTful Api 架构

    转自https://mengkang.net/620.html 一些常见的误解 不要以为 RESTful Api  就是设计得像便于 SEO 的伪静态,例如一个 Api 的 URL 类似于 http: ...

  8. 使用Flask设计带认证token的RESTful API接口[翻译]

    上一篇文章, 使用python的Flask实现一个RESTful API服务器端  简单地演示了Flask实的现的api服务器,里面提到了因为无状态的原则,没有session cookies,如果访问 ...

  9. RESTful API 设计指南

    转自:http://www.ruanyifeng.com/blog/2014/05/restful_api.html 网络应用程序,分为前端和后端两个部分.当前的发展趋势,就是前端设备层出不穷(手机. ...

随机推荐

  1. 锐捷交换机RG-3760-24 的简单配置与VLAN搭建

    要做的事 将交换机和主机连通. 建立vlan,并将主机配置到vlan当中. 连接主机和交换机 安装配置软件 选用SecureCRT 8.0来配置交换机,可在网上下载. 插入配置线 把配置线插入cons ...

  2. css百分比问题——`top`、`left`、'translate'的百分比参照谁?

    比如 top.left.transform属性的translate方法,他们的百分比都是相较谁而言的? top.left是基于父元素的: .parent { position: relative; b ...

  3. SQL 二

    1.执行DML语句的步骤:在数据库缓冲区缓存中搜索相关的块:将块从数据文件复制到缓冲区:将变更向量写入日志缓冲区:将变更向量应用于数据库缓冲区缓存.2.重做可以保护的段类型:索引段.表段.撤销段.3. ...

  4. 前端模块化小总结—commonJs,AMD,CMD, ES6 的Module

    随着前端快速发展,需要使用javascript处理越来越多的事情,不在局限页面的交互,项目的需求越来越多,更多的逻辑需要在前端完成,这时需要一种新的模式 --模块化编程 模块化的理解:模块化是一种处理 ...

  5. 判断ARP欺骗

    转自http://bbs.51cto.com/thread-904594-1.html 网关是服务器或者单独主机设备的话 如果网关是服务器或者单独主机设备的话查询网关MAC地址要简单一些,我们只需要在 ...

  6. 怎么将oracle的sql文件转换成mysql的sql文件

    怎么将sql文件导入PowerDesigner中的方法(将oracle的sql文件转换成mysql的sql文件)呢? 怎么将xx.sql文件的数据库结构导入powerdesigner 的方法呢? 现讲 ...

  7. 3. HTML中的容器标签

    什么是容器标签?在HTML开发中我们常常会使用一类标签作为容器放置一些内容,我们把这类标签称之为容器标签,可以作为容器标签的包括列表标签.表格标签.框架标签.布局标签,在这里我们就来总结下这些内容. ...

  8. 【Spark】Spark2.x版的新特性

    一.API 1. 出现新的上下文接口:SparkSession,统一了SQLContext和HiveContext,并且为SparkSession开发了新的流式调用的configuration API ...

  9. 【Java】集合遍历--List和Map的多种遍历方式

    1. List的两种遍历方式 package com.nova.test; import java.util.ArrayList; import java.util.Iterator; import ...

  10. java 对象的初始化流程(静态成员、静态代码块、普通代码块、构造方法)

    一.java对象初始化过程 第一步,加载该类,一个java对象在初始化前会进行类加载,在JVM中生成Class对象.加载一个类会进行如下操作,下面给出递归描述.(关于Class对象详见反射 点击这里) ...