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

Link API #2

Open
Open

Description

@samdark

GET /link?url=x

{
  url: bla-bla
}

POST /link

{
  url: xxx
}

DELETE /link?url=x

Activity

  1. romkatsu commented on Aug 12, 2020

    @romkatsu
    Contributor

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

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

  2. samdark commented on Aug 12, 2020

    @samdark
    MemberAuthor

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

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

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

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

  3. xepozz commented on Aug 15, 2020

    @xepozz
    Contributor

    Немного поразмыслив, я понял одну вещь: мы зря завязались на сущность 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": "inbox@mail.ru"
      }
    }
    
  4. samdark commented on Aug 15, 2020

    @samdark
    MemberAuthor

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

  5. linked a pull request that will close this issueAdd links #4on Aug 16, 2020
  6. removed a link to a pull requestAdd links #4on Aug 16, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions