[GH-ISSUE #466] Next API iteration #287

Closed
opened 2026-02-25 23:33:52 +03:00 by kerem · 1 comment
Owner

Originally created by @fmartingr on GitHub (Aug 10, 2022).
Original GitHub issue: https://github.com/go-shiori/shiori/issues/466

Discussed in https://github.com/go-shiori/shiori/discussions/462

Originally posted by Orhideous August 8, 2022
Hi everyone.

A few months ago I started to sketch out some complete API overhaul (see: https://github.com/go-shiori/shiori/pull/463). The main objectives that I set for myself were:

  • simplify the code base for easier support and long-term maintainability;
  • leverage battle-tested technologies and approaches as not to reinvent the wheel;
  • add ability to generate any client based solely on OpenAPI specification and thus get rid of the routine of writing it manually.

All that is left for me now is just to copy the business logic to the handlers.

So far I already integrated oapi-codegen into codebase. I intentionally left out the old APIs untouched so that they would work in parallel for some time (at least one release). Also, I intentionally designed new API as close as possible to the old one.
This will give time for a more or less painless migration.

@fmartingr What do you think about it? I would be happy to get feedback.

Originally created by @fmartingr on GitHub (Aug 10, 2022). Original GitHub issue: https://github.com/go-shiori/shiori/issues/466 ### Discussed in https://github.com/go-shiori/shiori/discussions/462 <div type='discussions-op-text'> <sup>Originally posted by **Orhideous** August 8, 2022</sup> Hi everyone. A few months ago I started to sketch out some complete API overhaul (see: https://github.com/go-shiori/shiori/pull/463). The main objectives that I set for myself were: - simplify the code base for easier support and long-term maintainability; - leverage battle-tested technologies and approaches as not to reinvent the wheel; - add ability to generate any client based solely on [OpenAPI specification](https://github.com/Orhideous/shiori/blob/feature/api-overhaul/openapi.yml) and thus get rid of the routine of writing it manually. All that is left for me now is just to copy the business logic to the [handlers](https://github.com/Orhideous/shiori/tree/feature/api-overhaul/internal/api). So far I already integrated [oapi-codegen](https://github.com/deepmap/oapi-codegen/) into codebase. I intentionally left out the old APIs untouched so that they would work in parallel for some time (at least one release). Also, I intentionally designed new API as close as possible to the old one. This will give time for a more or less painless migration. @fmartingr What do you think about it? I would be happy to get feedback.</div>
Author
Owner

@fmartingr commented on GitHub (Oct 10, 2022):

Please refer to https://github.com/go-shiori/shiori/discussions/462

<!-- gh-comment-id:1272840627 --> @fmartingr commented on GitHub (Oct 10, 2022): Please refer to https://github.com/go-shiori/shiori/discussions/462
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/shiori#287
No description provided.