-
Notifications
You must be signed in to change notification settings - Fork 3
biohub.biobrick
register name: api:biobrick
Note: Biobrick只读,不可更改。如果需要加入更改功能以后再说。
serializer.data的fields: {
- part_name
- sequence: DNA序列
- short_desc: 短描述
- description: 长描述,虽然有些biobrick的description比short_desc还短
- uses: 使用数
- urlset: 一个字典,包含三个keys: part, related_parts与gb_download。其中urlset['part']是biobrick在parts.igem.org官网的url。
- highlighted: 一个列表。在要求高亮的时候会包含一个字符串,表示高亮后的内容。
}
功能: 列出已有的biobricks。不知道这个功能有什么用,不想要可以去除。
url: /api/biobricks/
register name: api:biobrick:biobrick-list
method: get
参数:
- order: 可选,表示biobricks排列顺序。可选值为'part_name'(按照biobrick名字排序),'-uses'(按照uses降序排序)。默认值为'part_name'
返回格式:
若成功: 状态码200, {
- count: biobricks个数
- next: 下一页
- previous: 前一页
- results: 一个列表,每一项均为serializer序列化后的data
}
若不成功: 状态码视情况而定……{
- detail: 出错信息
}
功能: 通过pk(即part_id)检索某个biobrick,似乎更没有什么用的功能。
url: /api/biobrick//
register name: api:biobrick:biobrick-detail
method: get
参数: 没参数
返回格式:
若成功: 状态码200, 格式同serializer
若不成功: 状态码视情况而定……{
- detail: 出错信息
}
为了实现各种功能并减小数据库的负担,search使用elasticsearch后端,将大量数据存储为index以提供搜索服务。
search只有在正确安装elasticsearch的情况下才可以使用。elasticsearch要求<=2.x(3.x不被支持)。推荐按照elasticsearch官网方式安装。
安装elasticsearch之后,需要在http://127.0.0.1:9200/ 运行elasticsearch。这也是elasticsearch的默认端口。由于elasticsearch运行端口自由度很高,将来可以考虑将程序内elasticsearch端口设置作为可自定义的设置项。
为了搜索,需要建立索引。命令为python manage.py update_index
。在我的电脑上大概需要5min。
我没有经过非常精确的测试,但是感觉上看搜索一次大概1~3s。
- 可以对part_name与short_desc进行模糊搜索,优先搜索part_name,并支持效果并不好的高亮
- 可以给定显示顺序
- 可以给出拼写建议
后端实现: 使用haystack框架与elasticsearch后端。原本使用whoosh,但whoosh太慢。后期可能会尝试其他后端
url: /api/biobrick/search/
register name: api:biobrick:biobrick-search
method: get
参数:
- order: 可选。默认为按照相关度排序。可选值为'part_name'与'-uses'
- q: 在short_desc与description中查询,支持高级查询语法
- part_name
- sequence
- highlight: 可选。如果提供该变量,无论值为什么都会进行高亮
返回格式: 类似list。
区别在于访问成功时,如果q拼写错误,response.data中会有suggestion域,推荐正确的拼写。