LCH.LEGAL

Как защитить API и не переписать весь код

Комментирует Кирилл Ляхманов, Советник, Руководитель практики IP/IT LCH.LEGAL
Можно ли запретить использовать def sort(numbers: list) -> None просто потому, что кто-то уже так назвал свою функцию в API? Если бы интерфейсы охранялись авторским правом, это было бы реальностью: каждую функцию пришлось бы переименовывать, даже для стандартных действий. Функция из примера позволяет вызвать метод сортировки, но выбор применения метода у нее «‎под ‎капотом». 

Такие функции называются декларациями. Они описывают, что делает функция, но не как она это делает. Это интерфейс — способ взаимодействия, не реализация. В российском праве охраняется форма выражения, а не идея, метод или способ работы (п. 4 ст. 1259 ГК РФ). Поэтому сами API-декларации — в большинстве случаев не подлежат охране.

Почему это важно:

◾️Интерфейсы — это часть языка программирования, а не объект творчества.
◾️Повторная реализация API — технологическая норма, а не кража.
◾️Запрет на интерфейсы = конец совместимости и рост затрат.

Если бы охрана распространялась на декларации, вам нельзя было бы повторно использовать даже знакомые названия функций — несмотря на собственную реализацию. Именно этого добивалась Oracle, когда требовала у Google миллиарды за использование Java API. Если бы она победила, каждый привычный вызов стал бы объектом запрета. Это касалось бы всех: от библиотек до фреймворков и SDK. 

Ключевые сложности в контексте API обычно связаны с их защитой от копирования конкурентами. Если вы используете API или строите совместимые системы — важно понимать, где заканчиваются права, а где начинается свобода разработки.

Напишите — покажем, как провести границу и защитить интересы вашей команды.