Skip to content
This repository has been archived by the owner on Dec 4, 2023. It is now read-only.

Link API #2

Open
samdark opened this issue Aug 6, 2020 · 4 comments
Open

Link API #2

samdark opened this issue Aug 6, 2020 · 4 comments

Comments

@samdark
Copy link
Member

samdark commented Aug 6, 2020

GET /link?url=x

{
  url: bla-bla
}

POST /link

{
  url: xxx
}

DELETE /link?url=x

@romkatsu
Copy link
Contributor

Методы должны быть доступны без авторизации?

В методе GET, x - какого типа? Это id Link в бд?

@samdark
Copy link
Member Author

samdark commented Aug 12, 2020

Методы должны быть доступны без авторизации?

Авторизация по токену.

В методе GET, x - какого типа? Это id Link в бд?

Строка. Это нормализованная ссылка аля domain.com/bla-bla.

@xepozz
Copy link
Contributor

xepozz commented Aug 15, 2020

Немного поразмыслив, я понял одну вещь: мы зря завязались на сущность Link.

  1. Link - это частный случай "предложения".
  2. Link - заставляет нас ограничиваться концепцией "link first"
  3. В "предложении" может быть сразу несколько ссылок. Первичную ссылку стоит определять на моменте модерации, а не создании.

Предложение: создать метод-свалку, куда будем отправлять просто текст. Бэкенд будет парсить текст, искать ссылки и выводить их в модерку. Первичные ссылки можно будет хранить отдельно для дальнейшей дедубликации.

POST /suggestion
{
  "text": "Привет, вот крутой проект: https://github.com/{owner}/{project}. За неделю там 100500 звёздочек, давайте запустим его в PHP Digest?"
}

или

POST /suggestion
{
  "text": "Интересное наблюдение: в PHP 100500 стандартных функций, объекты работают быстрее массивов, а ресурсы и вовсе никто не использует."
}

Для частных случаев можно сделать предложение и с отдельной ссылкой

POST /suggestion
{
  "url": "https://github.com/{owner}/{project}"
}

или

POST /suggestion
{
  "url": "https://github.com/{owner}/{project}",
  "comment": "Мой крутой проект, поделитесь со всеми"
}

Еще в метод не заложен возможный источик.

Предлагаю сделать что-то вроде "гибкого" источника:

{
  "author": {
    "source": "telegram",
    "id": "@xepozz"
  }
}
{
  "author": {
    "source": "chrome-extension",
    "id": "@xepozz"
  }
}
{
  "author": {
    "source": "phpdigest.ru",
    "id": "Anonymous"
  }
}
{
  "author": {
    "source": "email",
    "id": "[email protected]"
  }
}

@samdark
Copy link
Member Author

samdark commented Aug 15, 2020

С источником идея норм, а вот отвязываться от ссылок, как по мне, не стоит. Проблему нескольких ссылок можно вполне решить регламентом "одна ссылка - один запрос". Иначе мы огребём на разборе freeform-текста, где не ясно, что к какой ссылке относится.

@romkatsu romkatsu linked a pull request Aug 16, 2020 that will close this issue
@roxblnfk roxblnfk reopened this Aug 16, 2020
@roxblnfk roxblnfk removed a link to a pull request Aug 16, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants