Open mastercyb opened 7 years ago
Струкутра описания
Очепятка. )
"name": "Дима Стародубцев",
Может, разбить на поля first_name, surname, last_name? Чтобы избежать вариантов "Дима Стародубцев", "Стародубцев Дима", "Стародубцев Дмитрий Батькович", "Дмитрий Батькович Стародубцев" и т.д. Кстати, как с кириллицей/латиницей?
Еще бы currency, добавили. Я не в России живу, мне рубли не о чем не говорят. Приходится в каждом браузере менять рубли на евро.
@vadbars только важно не переборщить с "обязательными полями"
Я так понимаю связи (отношения между объектами) тоже здесь хранить? То есть атрибут "featured_post" не нужен. Нужен атрибут "relations"
"relations":[
{"object_id":"@hipster/delegat-hipster", "type":"featured_post", "state":"true"},
{"object_id":"ru-stihotvorenia", "type":"blacklisted_tag", "state":"true"},
{"object_id":"ru-rasrabotka", "type":"favorited_tag", "state":"true"},
...
Мне вот интересно, есть какое то ограничение на размер json_meta? Влезут все хотелки?
@gropox Это лучше вот сюда #2 . Тут featured post больше имеется ввиду тот пост, который человек использует как метаописание.
Ну понял. Сорри
Я имел ввиду что featured_post по сути тоже ссылка, но наверное да, лучше ее в профиле оставить.
Про references я сначала думал придется в profile структуру добавить, но только сейчас дошло, что в json_meta можно параллельно хранить и profile и relations.
А почему currency массив? Наверное имелось ввиду какие валюты интересны? Я думал про что то вроде preferred_currency для GUI . Какая то одна валюта. Тоже самое возможно с preferred_language. Ну или договориться, что первая в списке валюта и есть основная, тогда в GUI надо будет дать возможность сортировки.
По поводу languages и currencies - массив тут используется для задания приоритета (как и в Header внутри запросов браузера). Приложение по-очереди пытается использовать в своих рамках указанные валюты, языки. Считаю целесообразным разбить fullname на name, lastname (необходимость surname под вопросом). Также стоит добавить background_color - отлично может использоваться приложениями на примере Wire (там есть выбор цвета в профиле). Надо расписать location - разбить на country + state + town. В Голосе about служит как "О блоге", а не "О себе". Тоже предлагаю разделить это: bio - о себе, кратко, about - о блоге.
Итого, мое предложение расширить структуру до:
name: max-length 20 chars
lastname: max-length 20 chars
bio: max-length 160 chars
about: max-length 160 chars
background_color: hex, #ff0000, 6 chars (или 3 байта от 0 до 255)
country - 60 chars (самое длинное, что нашел в кириллице: "Святой Елены, Вознесения и Тристан-да-Кунья острова")
state - 60 chars
town - 60 chars
По-поводу размерности данных - можно основываться на Википедии, но мне кажется так делать не стоит - лучше выделить больше, чем меньше - на разных языках и наречиях размерности отличаются, но явно не превышают 60 символов.
PS location - оставить в свободном режиме для заполнения, но не делать на нем логический упор (многие предпочитают писать свой город коротким названием, например у меня Димитровград, часто жители пишут Мелекесс, Дград, ДД, 2Д)
Абстракт
Приложениям необходим общий подход к хранению метаинформации о пользователях. Предложенный GIP рекомендует структуру хранения данных в поле
json_metadata
. Использование предложенного подхода позволит всем приложениям экосистемы Голос делиться структурированной информацией о пользователях.Структура описания
Требования к значениям
name
: max. length 20 chars.about
: max. length 160 chars.location
: max. length 30 chars.website
: validhttps://
URL with max. length 100 chars.profile_image
: image URL, preferably square-cropped with a minimum size of 230 x 230 pixels.