Вопросы с тегом «api-design»

12
C ++ Library API Design

Я ищу хороший ресурс для изучения хорошего дизайна API для библиотек C ++, просмотра общих объектов / библиотек и т. Д. Есть много ресурсов по написанию хороших API, хороших классов, шаблонов и так далее на уровне исходного кода, но почти ничего о собирать вещи в общие библиотеки и исполняемые...

11
Как спроектировать REST API для обработки операций без CRUD?

Я пытаюсь преобразовать набор сервисов на основе SOAP в API RESTful. Я начал с определения ресурсов путем анализа имен операций и получил ресурс Subscription. Когда мне нужно обновить состояние подписки, я не могу просто отправить POSTзапрос на сервер, потому что у меня нет прямого доступа к...

10
Подводные камни дизайна API в C [закрыто]

Закрыто . Этот вопрос основан на мнении . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 4 года назад . Какие недостатки сводят вас с ума в C API (включая стандартные библиотеки,...

10
Как избежать несанкционированного использования API?

Мне нужно разработать «виджет», скрипт, который партнеры будут вставлять на свои веб-сайты для отображения некоторого пользовательского интерфейса и выполнения вызовов нашего API. В основном он будет отображать наши данные на этих сайтах на основе некоторых идентификаторов, которые они...

10
Включить ссылку на соответствующую документацию в сообщении об ошибке?

Мы создаем коммерческую библиотеку и примеры кода, которые используются внешними разработчиками. У нас есть (закрытая, доступная для зарегистрированных пользователей) документация, в которой подробно объясняется, как использовать библиотеку. Многие из разработчиков являются новичками, поэтому...

10
Почему нуль-безопасные операторы (например, «оператор Элвиса») были отклонены как часть «Project Coin» Java 7?

Одной из предлагаемых функций Java 7 Project Project Coin была «Оператор Элвиса». Отчет о 2009 JavaOne презентации по проекту Coin описал его как таковой: Одной из «мелких особенностей», рассматриваемых в этой презентации, является так называемый «оператор Элвиса», более краткая версия троичного...

10
Применим ли «Закон Деметры» к публичным сигнатурам / методам API?

Учитывая, что изменения в сигнатуре API / публичного метода должны быть минимальными, чтобы не допустить взлома тех клиентских кодов, которые используют эти методы, мне было интересно, не применим ли закон Деметры к ним. Простой пример: class Account() { double balance; public void...

10
Почему проверенные и непроверенные исключения называются «противоречиями» в руководстве по Oracle Java?

Я новичок в Java и читал документацию по исключениям. и, в частности, « Непроверенные исключения» - страница «Противоречие» . Суть говорит: Если от клиента можно ожидать восстановления после исключения, сделайте его проверенным исключением. Если клиент не может ничего сделать для восстановления из...

10
Причины неинтуитивной реализации C # String.Split ()

В C #, если я хочу разделить stringна другое, stringя должен сделать что-то вроде этого: testString.Split(new string[] { "anotherString" }, StringSplitOptions.None); Из перегруженной String.Splitдокументации MSDN мы можем видеть реализацию и почему такой вызов должен быть сделан. Исходя из Python ,...

10
Что такое правильный код состояния ответа на POST, если родительский ресурс не найден?

У меня есть следующая конечная точка: a/{id}/b и хочу создать bс отправкой POSTзапроса к нему. Если aс данным {id}не найдено, я должен ответить с 404 NOT_FOUNDили, может быть, с 409 CONFLICT? Это просто для обработки a/{id}, хитрость в том, что здесь используется...

10
Архитектура системы оповещения

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

9
Является ли плохой практикой для определения объекта API содержать сторонние ссылочные идентификаторы в качестве свойств?

Нравится: Campaign: type: object properties: id: type: string description: "A GUID identifier" referenceId: type: string description: "A consumers identifier they have used to map their own systems logic to this object." name: type: string description: "'Great Campaign 2017' as an example" Я...

9
Должны ли слушатели событий содержаться в слабых ссылках?

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

9
Как бы я разработал метод TryParse, который предоставляет подробную информацию в случае ошибки синтаксического анализа?

При анализе пользовательского ввода обычно рекомендуется не генерировать и перехватывать исключения, а использовать методы проверки. В .NET BCL это будет разница между, например, int.Parse(создает исключение для недопустимых данных) и int.TryParse(возвращает falseнедопустимые данные). Я создаю свой...

9
Добавление к конечному набору опций; сломать API изменения?

Возьмите конечную точку HTTP API, которая выделяет следующую модель ответа: { "type": "Dog", "name": "Jessi", ... } typeПоле было описано в документации как один из Dog, Catили Fish. Будет ли добавление новой опции, скажем Rat, рассматриваться как критическое изменение API? Считается ли добавление...

9
На языке REST, в чем разница между ресурсом и представлением?

Я понимаю, что REST позволяет моделировать операции сервиса как представление состояния и переход из одного состояния в другое с использованием HTTP. Я всегда понимал ресурсы как представления о состоянии сервисной стороны до недавнего времени, когда читал эту статью Джимми Богарда, которого я знаю...

9
Идиоматическое обёртывание C ++ типа шаблона API в C

Я работаю над упаковкой API C ++, который предоставляет доступ к хранилищу данных (Hazelcast) в функции C, чтобы к хранилищу данных также можно было получить доступ из кода только на C. API Hazelcast C ++ для структуры данных Map выглядит следующим образом: auto map =...

9
API версий

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

9
CRUD API: как указать, какие поля обновлять?

Допустим, у вас есть какая-то структура данных, которая сохраняется в какой-то базе данных. Для простоты назовем эту структуру данных Person. Теперь перед вами стоит задача разработать CRUD API, который позволяет другим приложениям создавать, читать, обновлять и удалять Personфайлы. Для простоты...