Я в 5-тонный самосвал насыпал всего 2 тонны песка, через 30 минут двигатель заглох, теперь не заводится, я даже песку досыпал, все равно не заводится. Двигатель сгорел от перегрузки?
По законам физики не должен был сгореть из-за блока питания большей максимальной выходной мощности. Но мало ли внешних факторов.
abcd0x00: ладно. Вообще-то я не спорю. Просто я не понимаю, как архитектурно отделить лексический анализ от синтаксического, чтобы не валить все в кучу спагетти.
Как должен выглядеть поток лексем, полученный из вашего "этого", чтобы с ним потом мог легко работать синтаксический анализатор?
Вот так сойдет?
Массив строк:
abcd0x00: в каком смысле неправильное?
С незакрытыми тэгами? Сможет.
Или вот такое?
<body>
<html>
</html>
</body>
Тоже сможет в принципе. Я могу каждый узел перед добавлением проверять (по родителям и др). Что это тогда?
Владлен Ultra: он, наверно, имел в виду что-то вроде "superset", т.е. высокоуровневую обертку? Тогда ничего смешного, вполне нормальная практика, либо юзаешь фреймворк, либо пишешь его сам, тем более если это PHP. Либо ты пишешь говно без архитектуры и над тобой реально надо смеяться.
abcd0x00: т.е. после лексического анализа я уже имею AST, а синтаксический анализ выявляет в нем, скажем, вот такие ошибки:
private void Foo()
{
class Bar // класс запихнули в метод, а надо наоборот
{
}
}
Верно?
Но почему это не делают сразу при лексическом анализе?
Алексей Николаев: > по-хорошему, конечно, чистый html возвращать не стоит ни в одной из реализаций API Сотрудник Mail.Ru Group детектед. VK, Facebook, Google, да до кучи кто еще - с вами, видимо, не согласны в этом.
> Необязательно изобретать термины
Фары и ремень, однако.
> включить в него гипермедийные возможности
Спс, глянем!
> Ссылки же одних ресурсов на другие используются редко.
Вы о чем? Можно пример таких ссылок?
> Многие старые API до сих используют XML
Еще не во всех языках в стандартной библиотеке есть средства для JSON.
Вот в C# (десктопном), насколько знаю, только для XML. Для JSON надо стороннее.
Вывод: в моем API будут и JSON, и XML, и еще HTML (как думаете, зачем?)
Алексей Николаев: > а перемещать его между POST и GET данными в зависимости от запросов как минимум странно
Есть идея использовать HTTP-заголовок Authorization. Тот, что с base64.
Например, питонистам с библиотекой requests будет удобно, ИМХО.
Но зато сишарписты (читай: юзеры винды), такие, как я - вероятно, будут плеваться. К сожалению, у C# проблемы с HTTP-инструментарием все не очень хорошо, хоть и лучше, чем много где еще.
Вывод: в идеале надо оба варианта предусмотреть, ИМХО.
> возвращаемые данные не зависят от API
То есть даже если возвращает HTML, который на клиенте тупо ложится в innerHTML и все, то все равно это REST API?
Ну и как мне тогда выразиться, чтобы было понятно, что я говорю именно об удобной, современной реализации REST API, возвращающей именно JSON и/или XML, а уже потом HTML?
И что мне тогда предпочесть? Не совсем ясные словосочетания вроде "Cross-platform REST API"? Или ясное, но корявое слово "JSON REST API", напоминающее речь нубов, не понимающих, что к чему ("пишу скрипт на Ruby Jetbrains Rails")?
И более того, как раз-таки AJAX может и не работать через это API, а получать данные в виде HTML. Часто так и делают, видимо, с быстродействием связано. А вот клиенты на мобилах и десктопе - да.
Но даже это требование:
> /user/1/delete
> /user/create
> /user/1/getinfo
не всегда соблюдают.
Или вот это (стиль VK):
/user.delete?id=1&access_token=blablabla
/user.create?access_token=blablabla
/user.get?id=1&access_token=blablabla
тоже называется REST API?
А если вот такая жесть:
/ajax.php?method=delete_user&id=1&access_token=blablabla
/ajax.php?method=create_user&access_token=blablabla
/ajax.php?method=user_get&id=1&access_token=blablabla
неужели тоже?
И главное, вообще-то я себе смысл REST API иначе представлял.
Думал, что REST API, это прежде всего когда с сервака можно запросить только сырые данные (JSON/XML/...), без всего лишнего, которые уже обрабатывает клиент. Если это не REST API называется, то как? AJAX не катит, клиент может и не быть веб-мордой.
PATCH? Ооо...
Скажите, а что вы чувствуете? Не испытываете дискомфорта от браузеров и прочих HTTP клиентских тулз, не желающих в полной мере принимать вас со всеми вашими особенностями?
По законам физики не должен был сгореть из-за блока питания большей максимальной выходной мощности. Но мало ли внешних факторов.