Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

API #47

Open
catamphetamine opened this issue Apr 8, 2019 · 8 comments
Open

API #47

catamphetamine opened this issue Apr 8, 2019 · 8 comments

Comments

@catamphetamine
Copy link

Здравствуйте.
Я просто проходил мимо.
Уютный проект, а что по API?
Я поискал через Ctrl + F, не нашлось.
Если есть чё, то можно было бы прикрутить вот этот GUI:
https://github.com/catamphetamine/chanchan

@catamphetamine
Copy link
Author

Так, я понял, "Not under active development".
Ну вообще да, пять лет уже, так долго проекты не живут.
Есть какой-то lynxchan, но я его не смотрел.
Он на Node.js и MongoDB, хотя чанам база данных, наверное, не нужна, и прямо в файлы писать будет быстрее (я так предполагаю).
Иначе почему 2ch.hk грузится молниеносно.

@ahushh
Copy link
Owner

ahushh commented Apr 8, 2019

@catamphetamine апи есть в зачаточном состоянии, почти не протестировано и скорее всего будет меняться еще.
Список роутов вот, там внизу самом https://github.com/ahushh/Monaba/blob/docker/monaba/config/routes

@ahushh ahushh reopened this Apr 8, 2019
@ahushh
Copy link
Owner

ahushh commented Apr 8, 2019

Я в принципе и планировал в ближайшее время его доделать и сваять доку. Появление клиента для этого апи будет приятным бонусом.

@catamphetamine
Copy link
Author

Список роутов вот, там внизу самом

Ага, вижу.

/api/posts                             ApiPostR PUT
/api/posts/#Int                        ApiPostByIdR GET PATCH

/api/boards                            ApiListBoardsR GET
/api/boards/#Text/page/#Int            ApiBoardR GET
/api/boards/#Text/threads/#Int         ApiThreadR GET
/api/boards/#Text/threads/#Int/deleted ApiDeletedPosts GET

/api/feed/page/#Int                    ApiFeedR GET
/api/catalog/#Text                     ApiCatalogR GET
/api/home                              ApiHomeR GET
/api/captcha                           ApiCaptchaR GET
/api/file                              ApiFileR PUT

Плюс, ещё, видимо, эти:

/ajax/post/preview                AjaxPostPreviewR  POST
/ajax/postform/#Text              AjaxGetPostFormR  GET
/ajax/thread/#Text/#Int/new/#Int  AjaxNewPostsR     GET
/ajax/thread/#Text/#Int/last/#Int AjaxLastPostsR    GET
/ajax/thread/#Text/#Int/all       AjaxAllPostsR     GET
/ajax/thread/#Text/#Int/deleted   AjaxDeletedPostsR GET
/ajax/postbyid/#Int               AjaxPostByIdR     GET
/ajax/post/#Text/#Int             AjaxPostR         GET
/ajax/post/#Text/#Int/rawmsg      AjaxPostRawMsgR   GET
/ajax/feed/#Int                   AjaxFeedOffsetR   GET
/ajax/newfeed/#Int                AjaxNewFeedR      GET
/ajax/hide/thread/#Text/#Int/#Int AjaxHideThreadR   GET
/ajax/unhide/thread/#Text/#Int    AjaxUnhideThreadR GET
/ajax/board/stats                 AjaxBoardStatsR   GET
/ajax/board/stats/read            AjaxBoardStatsReadR GET
/jsonfrommsg/#Text                JsonFromMsgR      GET

Я в принципе и планировал в ближайшее время его доделать и сваять доку.

@ahushh А я тут тоже, клиент допиливать планировал к лету.

Как вообще ваш движок по производительности?
Это по сути самое основное, я так полагаю, для больших досок.
Если на имиджборде сидит много человек, то нагрузка большая. Если же это небольшое сообщество, то без разницы.
Я так понял, 2ch.hk вообще просто пишет всё прямо в файлы (*.html и *.json), потому что грузится он у меня за 12 миллисекунд (что API, что страницы).
Да и расширения в путях как бы намекают.
Видимо, старый-добрый подход начала 90-ых здесь — самый оптимальный.

Появление клиента для этого апи будет приятным бонусом.

Даа, по планам сейчас допилить GUI до юзабельного состояния (мб летом доделаю), потом попробовать обкатать где-нибудь на дваче.

@catamphetamine
Copy link
Author

Ага, Postgres, вижу.
Ну, реляционные базы — тоже хорошо.
Как плюс — они гибкие, и можно всегда добавлять какие-то фичи, которые были бы сложны в условиях просто файлов.
Да и в случае роста всегда можно поднять read-only реплики.
lynxchan пишут на MongoDB, но в своё время многие обожлись с этим MongoDB, так что я не особо им доверяю теперь.
Хаскель — понимаю, почему он был выбран: интересно было попробовать "что-нибудь такое".
Хрен где найдёте второго программиста на Хаскеле, конечно )
Но основную свою задачу — весело провести время — он наверняка выполнил.

Ладно тогда, я мб появлюсь где-нибудь летом, мб вы уже запилите какой-нибудь минимальный README со списком простейших read-only методов API (получить список досок, получить список тредов доски, получить сообщения треда — три штуки пока хватит) и примеров возвращаемых JSON объектов, а я на основе этой минимальной доки мб сваяю какой-нибудь простейший read-only адаптер для GUI.

@binakot
Copy link

binakot commented Apr 12, 2019

Почему бы не вынести API на отдельную страницу Wiki или хотя бы добавить раздел в конец README.

@catamphetamine
Copy link
Author

catamphetamine commented Apr 12, 2019

Если будете писать README по API, можете взять для примера вот такой документ, который я писал для "двача":
https://github.com/catamphetamine/captchan/blob/master/docs/2ch.hk.md

@ahushh
Copy link
Owner

ahushh commented Mar 9, 2020

@catamphetamine Добавил документацию для RO методов, описания там нет, но есть примеры - по ним в целом должно быть понятно.
https://documenter.getpostman.com/view/5005722/SzRxVpvC?version=latest

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants