avatar
RESTful 复杂查询# Programming - 葵花宝典
B*g
1
1.pdf 能完美支持中文
2.安装了一个preader从appstore(免费),开始中文是乱码,研究了一下,现在对了:
注意的地方:首先在pReader 书库界面,也就是主界面,打开 Preferences 菜单,在
DEF.ENCODING 项目下,选择 CP-936/GBK (Chinese)。
其次,电脑端txt文件要另存为ansi(这个应该是最先要改的)
这样就可以了
avatar
g*t
2
这问题挺有价值。单开一帖。
欢迎讨论,批评指正。
有几个浅见:
(1)
GET POST... 这些是高层语义,指导风格。
也许不应该认为对具体操作有多少指导价值。
只是偶然的,有一些具体操作正好契合了GET等的下一层意思。
很多教程混淆两者。其实是不对的。
(数学课本也很多这种例子。导致人无法learn from hard way)
但是因为风格层和具体层不是一层。语义是无法从上到下覆盖的。
具体在查询上表现很突出。GET/POST/PUT/。。 覆盖SQL语义?
这不可能是好的设计吧?
另外,且不说filter。只说定位。
拿一把尺子,一张白纸,你随便画一些横线竖线。
然后在每个区域填上数字,nested csv表格。表里套表。
怎么定位到一个cell? GET/POST/。。。能有多少指导意义呢?
(2)
所以我认为practical的办法也许是POST定位信息等参数过去就好。
endpoint用local/noun_select 就好。POST json,json包含verb_select
所需参数。
noun_select本身定义为一个资源。
avatar
T*i
3
mark一下
epub呢?



【在 B********g 的大作中提到】
: 1.pdf 能完美支持中文
: 2.安装了一个preader从appstore(免费),开始中文是乱码,研究了一下,现在对了:
: 注意的地方:首先在pReader 书库界面,也就是主界面,打开 Preferences 菜单,在
: DEF.ENCODING 项目下,选择 CP-936/GBK (Chinese)。
: 其次,电脑端txt文件要另存为ansi(这个应该是最先要改的)
: 这样就可以了

avatar
s*e
4
我的两分钱:
1)自定义DSL,作为参数传入,直观来说,就是直接把select 语句发给后端,后端返回
JSON,语句里可以有limit,order等子句
2)参考MongoDB的JSON查询格式,这个我自己用过,但今天突然发觉,1)更合自己口味:)
avatar
B*g
5
preader能支持epub,我找找epub的书试试

【在 T*******i 的大作中提到】
: mark一下
: epub呢?
:
: 在

avatar
g*t
6
一般人也许没有做好一个DSL的能力和资源。
我之前几天hard coded了几个固定的查询。然后参数化它们
.
然后用POST所需参数过去填空。。
例如 select x where id >10
写成个函数 selectIDlargerthan(x)
localhost/selectIDlargerthan POST 传x

味:)

【在 s******e 的大作中提到】
: 我的两分钱:
: 1)自定义DSL,作为参数传入,直观来说,就是直接把select 语句发给后端,后端返回
: JSON,语句里可以有limit,order等子句
: 2)参考MongoDB的JSON查询格式,这个我自己用过,但今天突然发觉,1)更合自己口味:)

avatar
q*j
7
def encoding在哪?找不到。多谢。



【在 B********g 的大作中提到】
: 1.pdf 能完美支持中文
: 2.安装了一个preader从appstore(免费),开始中文是乱码,研究了一下,现在对了:
: 注意的地方:首先在pReader 书库界面,也就是主界面,打开 Preferences 菜单,在
: DEF.ENCODING 项目下,选择 CP-936/GBK (Chinese)。
: 其次,电脑端txt文件要另存为ansi(这个应该是最先要改的)
: 这样就可以了

avatar
w*g
8
For Penny 1, the database schema is exposed to API consumers. Thus it is a
bad design.

味:)

【在 s******e 的大作中提到】
: 我的两分钱:
: 1)自定义DSL,作为参数传入,直观来说,就是直接把select 语句发给后端,后端返回
: JSON,语句里可以有limit,order等子句
: 2)参考MongoDB的JSON查询格式,这个我自己用过,但今天突然发觉,1)更合自己口味:)

avatar
B*g
9
屏幕左上角的下拉菜单

【在 q**j 的大作中提到】
: def encoding在哪?找不到。多谢。
:
: 在

avatar
s*e
10
同意,分层设计的基本原则是抽象化每层的业务逻辑,实现隔离。我的本意是DSL,
select 语句的举例不是很恰当。

【在 w*****g 的大作中提到】
: For Penny 1, the database schema is exposed to API consumers. Thus it is a
: bad design.
:
: 味:)

avatar
q*j
11
there are 'display', 'text display' etc。 where is the stuff you modified?
thanksa lot,

【在 B********g 的大作中提到】
: 屏幕左上角的下拉菜单
avatar
s*e
12
建议把帖子的主题改为RestFul API设计有哪些坑 :)
我想到的:
1. 复杂查询
2. 大批量数据(查询,处理)
3. 操作型服务的处理
4. 安全:认证,加密,签名
5. 缓存(前端,后端,中间环节)
6. 负载均衡

【在 g****t 的大作中提到】
: 这问题挺有价值。单开一帖。
: 欢迎讨论,批评指正。
: 有几个浅见:
: (1)
: GET POST... 这些是高层语义,指导风格。
: 也许不应该认为对具体操作有多少指导价值。
: 只是偶然的,有一些具体操作正好契合了GET等的下一层意思。
: 很多教程混淆两者。其实是不对的。
: (数学课本也很多这种例子。导致人无法learn from hard way)
: 但是因为风格层和具体层不是一层。语义是无法从上到下覆盖的。

avatar
B*g
13
乱码,明天研究研究

【在 T*******i 的大作中提到】
: mark一下
: epub呢?
:
: 在

avatar
w*m
14
同意,GET用http body传参数不是REST的规范https://stackoverflow.com/questions/
978061/http-get-with-request-body
但现在用的越来越多,像elasticsearch,parse server,等等。缺点是第一麻烦,
browser不能直接调参数,第二很多工具也不支持。
DSL我比较喜欢postgrest那种。
比如 GET /people?and=(grade.gte.90,student.is.true,or(age.gte.14,age.is.null
)) HTTP/1.1

味:)

【在 s******e 的大作中提到】
: 我的两分钱:
: 1)自定义DSL,作为参数传入,直观来说,就是直接把select 语句发给后端,后端返回
: JSON,语句里可以有limit,order等子句
: 2)参考MongoDB的JSON查询格式,这个我自己用过,但今天突然发觉,1)更合自己口味:)

avatar
B*g
15
进txt display去

【在 q**j 的大作中提到】
: there are 'display', 'text display' etc。 where is the stuff you modified?
: thanksa lot,

avatar
g*t
16
我才学了几天。问不了那么多问题。当然,目前也不需要那么多技术。只是休息时间读
写一下一直没空看的东西。


: 建议把帖子的主题改为RestFul API设计有哪些坑 :)

: 我想到的:

: 1. 复杂查询

: 2. 大批量数据(查询,处理)

: 3. 操作型服务的处理

: 4. 安全:认证,加密,签名

: 5. 缓存(前端,后端,中间环节)

: 6. 负载均衡



【在 s******e 的大作中提到】
: 建议把帖子的主题改为RestFul API设计有哪些坑 :)
: 我想到的:
: 1. 复杂查询
: 2. 大批量数据(查询,处理)
: 3. 操作型服务的处理
: 4. 安全:认证,加密,签名
: 5. 缓存(前端,后端,中间环节)
: 6. 负载均衡

avatar
q*j
17
got it. thanks. how to input chinese, may i ask?

【在 B********g 的大作中提到】
: 进txt display去
avatar
h*e
18
很久之前玩儿aws的api gateway
里面integrate get就是通过post好像
当时还想了半天为啥

【在 g****t 的大作中提到】
: 这问题挺有价值。单开一帖。
: 欢迎讨论,批评指正。
: 有几个浅见:
: (1)
: GET POST... 这些是高层语义,指导风格。
: 也许不应该认为对具体操作有多少指导价值。
: 只是偶然的,有一些具体操作正好契合了GET等的下一层意思。
: 很多教程混淆两者。其实是不对的。
: (数学课本也很多这种例子。导致人无法learn from hard way)
: 但是因为风格层和具体层不是一层。语义是无法从上到下覆盖的。

avatar
B*g
19
这不知道

【在 q**j 的大作中提到】
: got it. thanks. how to input chinese, may i ask?
avatar
s*e
20
复杂查询这块,之前轮子比较少,我都是野蛮开发,没有好好研究过。最近发现很多不
错的轮子。
1. MongoDB 的查询方式,以前我是大量借鉴的
2. Spring新的JPA支持了QueryDSL,这篇文章介绍了很多 Spring的REST 查询方法: http://www.baeldung.com/spring-rest-api-query-search-language-tutorial
3. RSQL parser https://github.com/jirutka/rsql-parser
4. OData http://www.odata.org/ - 楼主可以看看这个,支持多种语言,包括 C++
其他还有一些,针对不同语言的。
这里发现一个有趣的现象:很多轮子都建议使用 GET+URL 实现查询。我个人也是这么
建议的,除非遇到HTTP请求长度限制。使用 GET 最大的好处是前端和中间层缓存友善
,URL可以直接作为缓存的KEY。另外,很多HTTP请求加速软件,一般默认只开放对GET
请求的缓存和加速,并做了大量的性能优化。对其他方式请求的支持非常有限,很多根
本没有,使用的时候也需要非常小心。
avatar
s*a
21
nice! 收藏了! 感谢!



【在 B********g 的大作中提到】
: 1.pdf 能完美支持中文
: 2.安装了一个preader从appstore(免费),开始中文是乱码,研究了一下,现在对了:
: 注意的地方:首先在pReader 书库界面,也就是主界面,打开 Preferences 菜单,在
: DEF.ENCODING 项目下,选择 CP-936/GBK (Chinese)。
: 其次,电脑端txt文件要另存为ansi(这个应该是最先要改的)
: 这样就可以了

avatar
g*g
23
avatar
w*m
24
我的看法是没法形成统一标准。第一后面的数据库可能是SQL也可能是NoSQL。SQL还有
各种flavor。
比如后面是postgres,要搞一个full text search的query怎么办。
第二有安全问题。很多人对暴露schema不爽。
所以没办法,只有每次单造轮子了。
这就要靠程序员的个人能力了。
Leetcode可以加几道题训练一下。
easy level,比如Design REST GET simple query parser
medium level, 比如Design REST GET query parser with OR and Range
hard level, 比如Design REST GET query parser with rate limiter。 这个要用LRU
了。

http://www.baeldung.com/spring-rest-api-query-search-language-tutorial
GET

【在 s******e 的大作中提到】
: 复杂查询这块,之前轮子比较少,我都是野蛮开发,没有好好研究过。最近发现很多不
: 错的轮子。
: 1. MongoDB 的查询方式,以前我是大量借鉴的
: 2. Spring新的JPA支持了QueryDSL,这篇文章介绍了很多 Spring的REST 查询方法: http://www.baeldung.com/spring-rest-api-query-search-language-tutorial
: 3. RSQL parser https://github.com/jirutka/rsql-parser
: 4. OData http://www.odata.org/ - 楼主可以看看这个,支持多种语言,包括 C++
: 其他还有一些,针对不同语言的。
: 这里发现一个有趣的现象:很多轮子都建议使用 GET+URL 实现查询。我个人也是这么
: 建议的,除非遇到HTTP请求长度限制。使用 GET 最大的好处是前端和中间层缓存友善
: ,URL可以直接作为缓存的KEY。另外,很多HTTP请求加速软件,一般默认只开放对GET

avatar
a*m
25
另存为ansi?那中文不都丢失了?



【在 B********g 的大作中提到】
: 1.pdf 能完美支持中文
: 2.安装了一个preader从appstore(免费),开始中文是乱码,研究了一下,现在对了:
: 注意的地方:首先在pReader 书库界面,也就是主界面,打开 Preferences 菜单,在
: DEF.ENCODING 项目下,选择 CP-936/GBK (Chinese)。
: 其次,电脑端txt文件要另存为ansi(这个应该是最先要改的)
: 这样就可以了

avatar
d*r
26
mark。
avatar
f*l
27
其实国人做了一个webos app,可以完美支持中文txt。



【在 B********g 的大作中提到】
: 1.pdf 能完美支持中文
: 2.安装了一个preader从appstore(免费),开始中文是乱码,研究了一下,现在对了:
: 注意的地方:首先在pReader 书库界面,也就是主界面,打开 Preferences 菜单,在
: DEF.ENCODING 项目下,选择 CP-936/GBK (Chinese)。
: 其次,电脑端txt文件要另存为ansi(这个应该是最先要改的)
: 这样就可以了

avatar
f*l
28
有两个中文输入法,都是webos的,国内的palm fans做的。还是以前买pixi的时候琢磨
找到的。我去找找看看。

【在 q**j 的大作中提到】
: got it. thanks. how to input chinese, may i ask?
avatar
B*g
29
不会的

【在 a********m 的大作中提到】
: 另存为ansi?那中文不都丢失了?
:
: 在

avatar
j*y
32
mark



【在 B********g 的大作中提到】
: 1.pdf 能完美支持中文
: 2.安装了一个preader从appstore(免费),开始中文是乱码,研究了一下,现在对了:
: 注意的地方:首先在pReader 书库界面,也就是主界面,打开 Preferences 菜单,在
: DEF.ENCODING 项目下,选择 CP-936/GBK (Chinese)。
: 其次,电脑端txt文件要另存为ansi(这个应该是最先要改的)
: 这样就可以了

avatar
t*o
33
请问你书是怎么转到TP上的? 我用USB drive模式, 拷了几个不同格式的书
上去, 结果preader楞是什么也找不到.



【在 B********g 的大作中提到】
: 1.pdf 能完美支持中文
: 2.安装了一个preader从appstore(免费),开始中文是乱码,研究了一下,现在对了:
: 注意的地方:首先在pReader 书库界面,也就是主界面,打开 Preferences 菜单,在
: DEF.ENCODING 项目下,选择 CP-936/GBK (Chinese)。
: 其次,电脑端txt文件要另存为ansi(这个应该是最先要改的)
: 这样就可以了

avatar
t*o
34
哦, figure out 出来了. 把包含书, 照片, video什么的文件夹拷到/download这
个文件夹下就可以读了.

【在 t*******o 的大作中提到】
: 请问你书是怎么转到TP上的? 我用USB drive模式, 拷了几个不同格式的书
: 上去, 结果preader楞是什么也找不到.
:
: 在

avatar
p*t
35
mark
avatar
M*e
36
mark
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。