Как стать автором
Обновить

Комментарии 10

Протобаф в вебе? Нет пути!

Это само по себе в 10 раз интересней статьи.

Интересно, зачем они протобаф впихнули туда? Защита от скрипт-киддиз парсеров? Или какие-то непонятные вопросы производительности?

Думаю, да
Две цели
1) Производительность
2) Скрытие данных

или бекэнд на плюсах, в которых это единственный +- адекватный способ сериализации данных

float price_before

«priceBefore»: 218.99000549316406

Точность – никогда не бывает лишней!

Точно)

from proto_structs import offers_pb2

Это какой-то модуль, написанный Вами? Можно увидеть его содержимое? Спасибо!


Команда

protoc --proto_path=proto_files --python_out=proto_structs offers.proto

создает файл offers_pb2.py в папке proto_structs/

Этот файл содержит описание полей для протобафа. Пример:

# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: offers.proto
...

_OFFER = _descriptor.Descriptor(
  name='Offer',
  full_name='Offer',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='Offer.name', index=0,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ...

Я так и не понял, честно говоря, причем тут безопасность...

пример того, как по бинарному файлу определить структуру сообщений, которую использует сайт

и пример того, как декодировать бинарный файл (извлечь из него нужные данные)

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории