1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/ljj41138749-ServiceStack

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Простой, быстрый, универсальный и многофункциональный фреймворк для сервисов

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

Фреймворк ServiceStack можно использовать для создания слабосвязанных модульных архитектур сервисов благодаря интегрированному сервисному шлюзу. Сервисы ServiceStack доступны через множество встроенных быстрых форматов данных (включая JSON, XML, CSV, JSV, ProtoBuf, Wire и MsgPack), а также XSD/WSDL для конечных точек SOAP и хостов Rabbit MQ, Redis MQ и Amazon SQS.

Дизайн и простота ServiceStack предлагают беспрецедентный набор функций для повышения производительности, которые можно декларативно включить без написания кода. Они включают создание полностью доступных для запросов веб-API с использованием всего одного типизированного запроса DTO с поддержкой Auto Query для всех основных СУБД и встроенной поддержкой пакетных запросов или лёгкое включение расширенного HTTP-кэширования и зашифрованных сообщений для всех существующих сервисов через плагины.

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

Сервисы ServiceStack также максимизируют производительность для потребителей, предоставляя мгновенный сквозной типизированный API без генерации кода, обеспечивая наиболее продуктивный опыт разработки для создания веб-сервисов .NET to .NET.

Создайте мгновенные типизированные API из любой основной IDE!

ServiceStack теперь интегрируется со всеми основными IDE, используемыми для создания лучших нативных решений на самых популярных платформах, чтобы обеспечить высокопродуктивную разработку при использовании веб-сервисов, делая ServiceStack идеальным выбором для создания мощных нативных приложений для iPhone и iPad на iOS, мобильных и планшетных приложений на Android. Платформа с Java, приложениями для настольных компьютеров OSX, а также нацеленная на самые популярные платформы .NET PCL, включая Xamarin.iOS, Xamarin.Android, Windows Store, WPF, WinForms и Silverlight:

Интеграция VS.NET с ServiceStackVS

Предоставление мгновенных типизированных API для C#, TypeScript, F# и VB.NET непосредственно в Visual Studio для самых популярных платформ .NET, включая iOS и Android с использованием Xamarin.iOS и Xamarin.Android на Windows.

Интеграция Xamarin Studio с ServiceStackXS

Поддержка собственных типов C# для разработки мобильных приложений iOS и Android с помощью Xamarin.iOS и Xamarin.Android с Xamarin Studio на OSX. Плагин ServiceStackXS также предоставляет широкие возможности для разработки веб-сервисов и клиентских приложений с Mono Develop на Linux.

Интеграция Xcode с плагином ServiceStackXC

Предоставление мгновенного типизированного API на Swift, включая универсальные клиенты сервисов, что обеспечивает высокую производительность и лёгкое использование веб-сервисов из нативных приложений iOS и OSX — прямо из Xcode!

Интеграция Android Studio с ServiceStackIDEA

Предоставление мгновенного типизированного API на Java и Kotlin, включая идиоматические Java универсальные клиенты сервисов. Поддержка синхронных и асинхронных запросов с использованием AsyncTasks Android для создания богатых сервисами и отзывчивых нативных мобильных приложений на платформе Android — прямо из Android Studio!

Интеграция IntelliJ с ServiceStackIDEA

Плагин ServiceStack IDEA устанавливается напрямую из репозитория плагинов IntelliJ и обеспечивает бесшовную интеграцию с проектами Java Maven в IntelliJ для генерации типизированного API, чтобы быстро и легко использовать удалённые веб-сервисы ServiceStack из чистых кроссплатформенных клиентов Java или Kotlin.

Интеграция Eclipse с ServiceStackEclipse

Непревзойдённая производительность, предлагаемая Java Add ServiceStack Reference, также доступна в плагине IDE ServiceStackEclipse, который устанавливается из Eclipse MarketPlace для обеспечения глубокой интеграции Add ServiceStack Reference. Добавление и обновление ссылок на удалённые веб-сервисы ServiceStack в проектах Eclipse Java Maven

В дополнение к растущему списку поддерживаемых IDE, кроссплатформенные сценарии npm для командной строки servicestack-cli (https://github.com/ServiceStack/servicestack-cli) упрощают работу серверов сборки, автоматизированных задач и командных бегунов ваших любимых текстовых редакторов. С их помощью можно легко добавлять и обновлять ссылки на ServiceStack!

Пример простых клиентских баз данных REST-сервисов

Этот пример также доступен как отдельный интеграционный тест (https://github.com/ServiceStack/ServiceStack/blob/master/tests/ServiceStack.WebHost.Endpoints.Tests/CustomerRestExample.cs):

//Web Service Host Configuration
public class AppHost : AppSelfHostBase
{
    public AppHost() 
        : base("Customer REST Example", typeof(CustomerService).Assembly) {}

    public override void Configure(Container container)
    {
        //Register which RDBMS provider to use
        container.Register<IDbConnectionFactory>(c => 
            new OrmLiteConnectionFactory(":memory:", SqliteDialect.Provider));

        using (var db = container.Resolve<IDbConnectionFactory>().Open())
        {
            //Create the Customer POCO table if it doesn't already exist
            db.CreateTableIfNotExists<Customer>();
        }
    }
}

//Web Service DTO's
[Route("/customers", "GET")]
public class GetCustomers : IReturn<GetCustomersResponse> {}

public class GetCustomersResponse
{
    public List<Customer> Results { get; set; } 
}

[Route("/customers/{Id}", "GET")]
public class GetCustomer : IReturn<Customer>
{
    public int Id { get; set; }
}

[Route("/customers", "POST")]
public class CreateCustomer : IReturn<Customer>
{
    public string Name { get; set; }
}

[Route("/customers/{Id}", "PUT")]
public class UpdateCustomer : IReturn<Customer>
{
    public int Id { get; set; }

    public string Name { get; set; }
}

[Route("/customers/{Id}", "DELETE")]
public class DeleteCustomer : IReturnVoid
{
    public int Id { get; set; }
}

// POCO DB Model
public class Customer
{
    [AutoIncrement]
    public int Id { get; set; }

    public string Name { get; set; }
}

//Web Services Implementation
public class CustomerService : Service
{
    public object Get(GetCustomers request)
    {
        return new GetCustomersResponse { Results = Db.Select<Customer>() };
    }

    public object Get(GetCustomer request)
    {
        return Db.SingleById<Customer>(request.Id);
    }

    public object Post(CreateCustomer request)
    {
        var customer = new Customer { Name = request.Name };
        Db.Save(customer);
        return customer;
    }

    public object Put(UpdateCustomer request)
    {
        var customer = Db.SingleById<Customer>(request.Id);
        if (customer == null)
            throw HttpError.NotFound("Customer '{0}' does not exist".Fmt(request.Id));

        customer.Name = request.Name;
        Db.Update(customer);

        return customer;
    }

    public void Delete(DeleteCustomer request)
    {
        Db.DeleteById<Customer>(request.Id);
    }
}

Вызов вышеуказанного REST-сервиса из любого клиента C#/.NET

Генерация кода не требуется, можно повторно использовать серверные DTO:

var client = new JsonServiceClient(BaseUri);

//GET /customers
var all = client.Get(new GetCustomers());                         // Count = 0

//POST /customers
var customer = client.Post(new CreateCustomer { Name = "Foo" });

//GET /customer/1
customer = client.Get(new GetCustomer { Id = customer.Id });      // Name = Foo

//GET /customers
all = client.Get(new GetCustomers());                             // Count = 1

//PUT /customers/1
customer = client.Put(
    new UpdateCustomer { Id = customer.Id, Name = "Bar" });       // Name = Bar

//DELETE /customers/1
``` **client.Delete(new DeleteCustomer { Id = customer.Id });**

//GET /customers
all = client.Get(new GetCustomers());                             // Count = 0

Same code also works with Android, iOS, Xamarin.Forms, UWP и WPF клиентами.

F# и VB.NET могут повторно использовать те же клиенты .NET Service и DTO.

Вызов из TypeScript

const client = new JsonServiceClient(baseUrl);
const { results } = await client.get(new GetCustomers());

Вызов из Swift

let client = JsonServiceClient(baseUrl: BaseUri)

client.getAsync(GetCustomers())
    .then {
        let results = $0.results;
    }

Вызов из Java

JsonServiceClient client = new JsonServiceClient(BaseUri);

GetCustomersResponse response = client.get(new GetCustomers());
List<Customer> results = response.results; 

Вызов из Kotlin

val client = JsonServiceClient(BaseUri)

val response = client.get(GetCustomers())
val results = response.results

Вызов из Dart

var client = new JsonServiceClient(BaseUri);

var response = await client.get(GetCustomers());
var results = client.results;

Вызов из jQuery с использованием определений типов TypeScript

$.getJSON($.ss.createUrl("/customers", request), request, (r: GetCustomersResponse) => {
    var results = r.results;
});

Использование определений типов TypeScript с Angular HTTP Client:

this.http.get<GetCustomersResponse>(createUrl('/customers', request)).subscribe(r => {
    this.results = r.results;
});

Вызов из jQuery

$.getJSON(baseUri + "/customers", function(r) {
    var results = r.results;
});

Это весь код приложения, необходимый для создания и использования простого REST Web Service с поддержкой базы данных!

Начало работы

Примечания к выпуску

Скачать

Если у вас установлен NuGet, самый простой способ начать работу — это:

Установить ServiceStack через NuGet.

Последняя версия v4+ на NuGet является коммерческим выпуском с бесплатными квотами.

Документы и загрузки для старых выпусков v3 BSD

Живые демонстрации

Окончательный список примеров проектов, вариантов использования, демонстраций, шаблонов стартеров

Копирование

С сентября 2013 года исходный код ServiceStack доступен под GNU Affero General Public License/FOSS License Exception, см. license.txt в исходном коде. Также доступно альтернативное коммерческое лицензирование, подробности см. на странице https://servicestack.net/pricing.

Вклад

Участники должны одобрить Лицензионное соглашение участника перед рассмотрением кода, дополнительные сведения см. в документации по внесению вклада. OSS Libraries used

ServiceStack включает исходный код следующих библиотек с открытым исходным кодом для некоторых своих основных функций. Каждая библиотека выпущена под соответствующей лицензией:

Узнайте больше

Следите за @ServiceStack и +ServiceStack для получения обновлений проекта.


Основная команда

Вкладчики

Большое спасибо GitHub и всем вкладчикам ServiceStack:

В запросе представлен список имён пользователей с различных платформ для разработчиков, таких как GitHub. Дилан в. д. Мерве, Маттиас, Пол Тин, Джейсон Уотерман, Аллен Ньютон, Сами, Рассел Чедвик, Стефан Даугоард Поульсен, Филип Войцешин, Джеффри Хантли, Бару Мазус, Фил Дегенхардт, Крейг Петерсон, Джэ Сон Чанг, Билик Тамас, Жереми Лаваль, Ди Сминик, Адам Фаулер, Брайан Фризен, Рори Фицпатрик, Стивен Дево, Гдассак, Мелат 10к, Кармен Мельгарехо, Скайман, Брайан Росс, Вим Пул, Ворд брейкер, Адебиси Фолусо А., М. Бишофф, Иван Фиораванти, Кит Хассен, Джош Эрл, Майкл Фрис, Коркупин, Брайан Чавес, Нильс Хенрик Хаген, Даррен Остер, Стив Чепмен, Юлрих Киффер, Адам Ларсен, Йорг Розенкранц, Дразен Дотлич, Крис МакВитти, Марсио Фабио Альтманн, Майк Мерцок, Джон Камау, Уфук Хаджиогуллари, Дэви Брион, Александр Ширяев, Александр Заозерский, Фабрицио Мило, Блейк Немийски, Александр Найквист, Макдак 76, Коджору, Джереми Бриджес, Андреа Бальдуччи, Роберт Грейлинг, Роберт Бил, Марк Расмуссен, Джейми Хьюстон, Питер Каль, Хельгель, Энтони Карл, Жюльен Лебоскейн, Пол Уилер, Алекcд, Майк Требиклок, Марк Вудхолл. Нэнси Fx — это облегчённая веб-инфраструктура, созданная по образцу Sinatra, для .NET.

Nancy Fx (http://nancyfx.org) позволяет легко создавать веб-приложения и API. Проект предоставляет набор модулей и инструментов для быстрой разработки веб-сервисов на .NET. MVC — это фреймворк в стиле паттерна «Front Controller» для использования в веб-приложениях, созданных на ASP.NET.

Rest Sharp — клиент REST с открытым исходным кодом для .NET.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Простой, быстрый, универсальный и высокопроизводительный полнофункциональный фреймворк для веб-разработки и веб-сервисов. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/ljj41138749-ServiceStack.git
git@api.gitlife.ru:oschina-mirror/ljj41138749-ServiceStack.git
oschina-mirror
ljj41138749-ServiceStack
ljj41138749-ServiceStack
master