API一次只能返回n行

时间:2019-11-21 06:59:19

标签: mysql rest api flask

我是API构建的新手。我有一个要求。我的API显示书籍详细信息,并且如果符合条件的书籍数量超过25本,则API一次只能返回25本书,并支持检索下一组25本书的方法,直到检索到所有书籍。

我还需要一点建议。我有10个表,我需要通过从每个表中获取一些数据来加入这些表,并将合并结果返回给API调用。我认为在一个查询中进行10次连接会占用大量内存,并且可能无法获得最佳结果。

我还将在各种表格的某些列上使用一些过滤器。我应该为单个表分别获取行吗?同样在API返回调用中,某些键将具有多个数据,但是此查询未显示以下是我正在使用的查询:

SELECT b.title,a.name,b.media_type,l.code,bsub.name,bs.name,f.url FROM books_book b 
inner join books_book_authors ba on b.id=ba.book_id 
inner join books_author a on a.id=ba.author_id 
inner join books_bookshelves bss on ba.book_id=bss.book_id
inner join books_bookshelf bs on bss.bookshelf=bs.id
inner join books_book_subjects bsubs on bsubs.book_id=ba.book_id
inner join books_subject bsub on bsubs.subject_id=bsub.id
inner join books_format f on f.book_id=ba.book_id
inner join books_languages ls on ls.book_id=ba.book_id
inner join books_language l on ls.language_id=l.id
order by b.download_count desc;

2 个答案:

答案 0 :(得分:0)

您可以使用limit和offset来检索有限的数据集

SELECT column1, column2, ...
FROM table_name
LIMIT 10 offset 5;

答案 1 :(得分:0)

您可以在SQL查询中使用LIMIT来限制页面大小。您还需要根据book_id对结果进行排序。在get API中,您可以发送收到的当前页面最后一本书的book_id。然后,可以使用book_id从API端返回下一页。