我花了整整一周时间将美味派整合到我的项目中,现在我无法停止思考“我为什么要这样做”。
我正在使用 django 和 sweetpie(REST 框架),但我的问题可以应用于其他语言/框架。
我的要求是
1. 移动客户端请求 json
2. 网络客户端请求 html 和 json
所以我有
- json请求的end_point(例如,给我这个用户的图像)
- html请求的end_point(给我一个带有他的图像等的用户主页)
- core_service(底部)将图像字典列表返回到#1和#2
def user_image_list_json(request): # 1
dict = service.user_image_list(request.user_id)
return serialize_as_json(dict)
def user_home(request): #2
#build other parts of user home such as `user name`
dict = service.user_image_list(request.user_id)
#stuff that dict inside html
#build other parts of the page
return html_response
#3
def image_list_user(user_id, last_image_id,request_comment_count, count):
if last_image_id is not None:
last_image_id = int(last_image_id)
queryset = AlbumImage.objects.select_related().filter(id__lt=last_image_id).filter(album__user_profile__user__id = user_id)
else:
queryset = AlbumImage.objects.select_related().filter(album__user_profile__user__id = user_id)
if count is not None:
count = min(IMAGE_LIST_COUNT, count)
queryset = queryset[0:count]
else:
count = IMAGE_LIST_COUNT
album_image_list = list(queryset)
#dict_list = [album_image.to_dict() for album_image in album_image_list]
dict_list = append_comment_list(album_image_list,request_comment_count)
return dict_list
这就是我构建 Web 服务以服务 Web 客户端和移动客户端的方式。
现在我听说 REST 框架可以简化 Web 开发。(这是我的第一个 Web 开发)
我采用了 sweetpie(一个 django/python REST api 框架)
我预计tastepie 会在第3 级(common_service)替换我的代码。
但我发现它实际上是#1/#3 绑在一起的。
如果我的理解是正确的,我最终会得到
json请求的end_point(例如,给我这个用户的图像)- html请求的end_point(给我一个带有他的图像的用户主页)
- core_service(在底部)将python字典返回到#1和#2
- 作为#1/#3 组合的美味派
所以即使我有美味派,我仍然需要#3.(核心服务)。
我觉得很奇怪...
从其他观点使用tastepie api是我的相关问题。