Pull to refresh
375
0

Разрабатываю API более 10 лет

Send message
Returns the byte index

Оперировать UTF-8 строкой как массивом уникодных символов невозможно в Rust. Ты можешь оперировать ей как набором указателей на место в буфере, где начинается какой символ.


В реальной жизни же уметь работать с UTF-8 строкой как с набором байтов не нужно вообще никогда.

А можно примеры продуманных решений в GraphQL? Единственное, что он умеет из списка — возвращать пустые массивы без ошибки.

Так я и пишу, что надо разрабатывать API так, чтобы у вебмакаки не было этой проблемы. Указывать дефолтное состояние чекбокса то бишь. И руки оторвать тому, кто придумал неинициализированное состояние системного чекбокса.

Хинт: если взять последние, ну скажем 6 знаков uuid-а — получится ровно то же самое длинное число. Админки, которые я видел, именно так и делали — последние n знаков показывали, полный uuid за спойлером.

Лично для меня Rust закончился, когда я осознал, что он не умеет в UTF-8. Совсем. Инженеры просто не подумали, им по традиции наплевать на неанглоязычных пользователей.


Найти подстроку, вставить подстроку, заменить подстроку, разбить по подстроке — пиши всё сам, итератор по символам к твоим услугам.

Последний абзац прочитайте, пожалуйста.

Вот что меня всегда поражало, можно даже сказать, восхищало, в русскоязычных форумах, так это апломб, с которым дилетанты излагают свою критику.
С вашего позволения, на сообщения в такой форме я отвечать не буду.

Так ровно это REST и предполагает ;) Принцип code-on-demand.
Следующая глава будет про интерфейсы, а вот через неделю планирую взяться за главу ‘Deconstructing the REST myth’

Ну как «разработано». Операции «сдвинь элемент массива на n позиций влево» там нет, например. Если б любая предметная логика описывалась просто правкой JSON-ов, я бы давно помер с голода.

Ну и не могу не отметить, что поле, принимающее три значения — true, false и null — это какой-то кадавр, независимо от наличия в языке удобных конструкций для работы с такой псевдотроичной логикой.

API (как и контрактное программирование в целом) нужен в том числе для того, чтобы разработчики клиента были свободны в выборе технологий и не зависели от моих личный желаний и предпочтений.

Не очень понимаю, что вы этим хотели сказать.


Хороший тон при разработке API — использовать для идентификаторов сущностей глобально уникальные строки, либо семантичные (например, "lungo" для видов напитков), либо случайные (например UUID-4). Это может чрезвычайно пригодиться, если вдруг придётся объединять данные из нескольких источников под одним идентификатором.
Set all the other bits to randomly (or pseudo-randomly) chosen values.
https://tools.ietf.org/html/rfc4122#page-14

Попробуйте взять другой генератор энтропии.

Я взял uuid сгенеренные по RFC.

Согласно какому RFC, если не секрет?

Для пустых результатов поиска часто используют 204 No Data. Это как 404, но без ошибки)

204 подразумевает пустое тело ответа — а значит, ничего полезного (например, предложение исправить опечатку) в нём не передать. Плюс пустое тело — невалидный json, клиентам придётся обрабатывать его отдельно.


Если программист клиента не может отличить null от false, ну так может гнать такого из профессии?

Если разработчик API предлагает отличать null от false, может его нужно гнать из профессии?
Популярным API чисто статистически будут пользоваться тысячи, может десятки тысяч разработчиков. Они будут допускать ошибки, а результатом этих ошибок будут проблемы реальных людей. Сознательно провоцировать ошибки, мол, нечего джунов нанимать — не очень конструктивная позиция.

Вот несколько UUID попробуйте понять есть ли среди них одинаковые:

Во-первых, необходимо использовать рандомные идентификаторы, похожих не будет.
Во-вторых, решительно не понимаю, в чем преимущество числовых идентификаторов. Они удобны, пока их мало. Когда счет на миллионы-миллиарды идёт — точно так же поди разбери, в каком знаке отличие.

В конце не хватает приписки «один я д'Артаньян».

Заголовки я поправил, а как спойлеры делать в новом редакторе я не нашёл.

Выше правильно ответили. Но должен заметить, что REST никак не регламентирует такие вопросы, это семантика самого HTTP.

Information

Rating
Does not participate
Location
Россия
Registered
Activity