Как создать APi в С#?

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

В принципе, я понятия не имею, как перейти к API. Для меня были бы полезны любые примеры.

5 ответов

API - это просто способ взаимодействия других программистов с вашим кодом. Библиотека классов AС# может быть API, а также веб-службой, конечной точкой WCF и т.д. Самый простой способ сделать это - создать проект библиотеки классов С#, убедиться, что он имеет общедоступные методы и скомпилировать его в .dll которые вы можете распространять.

Как упоминалось другими, Руководство по разработке рамок полезно для некоторых правил.

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

Это означает, что вы хотите следовать всем общим принципам дизайна UI/UX - открытость, упрощение простых задач и т.д.

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


Создание API в С# не имеет большого значения, но создание хорошего API - довольно сложный вопрос.

Если вы хотите распространять свою сборку как API, вам нужно просто добавить Проект библиотеки классов в вашей Visual Studio.

Или, если вы хотите открыть свой API как услугу, вы можете рассмотреть WCF и Web Api.

Чтобы создать хороший и эффективный API, вам необходимо изучить <a href="http://blogs.msdn.com/b/brada/archive/2009/10/11/video-posted-for-belgium-visual-studio-user-s-group-10-years-of-framework-design-guidelines.aspx" rel="nofollow noreferrer" target="_blank">Руководства по дизайну каркаса</a>


Ваш вопрос немного общий.

Однако я пытаюсь ответить вам. Посмотрите, хотите ли вы создавать API, который может быть вызван через HTTP, тогда вы можете сделать это с помощью WCF..

Вы можете прочитать о WCF на wcftutorial.net

Вы также можете создавать API, используя DLL, и я рекомендую вам прочитать http://www.c-sharpcorner.com/UploadFile/mahesh/dll12222005064058AM/dll.aspx

для быстрого запуска о том, как создать DLL с помощью Visual С#.

Спасибо,


Если вы хотите создать API, который может быть легко использован, это может быть проблемой.

Прежде всего: подумайте в интерфейсах. Напишите интерфейсы, которые могут использоваться этими нуждающихся в функциональности, которую вы предоставляете.

И: Держи это просто!

В лучшем случае вы пишете два проекта при разработке вашего API.

  • API, который будет использоваться вашими пользователями
  • Пример проекта/проекта тестирования, который уже использует ваш API.

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

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

Удачи!


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

licensed under cc by-sa 3.0 with attribution.