GithubHelp home page GithubHelp logo

gaynutdinovlinar / api.moex Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 16 KB

Библиотека для более удобного взаимодействия с ISS Московской биржи.

License: MIT License

C# 100.00%
csharp iss moex stocks

api.moex's Introduction

Api.Moex

Описание

Api.Moex - библиотека, созданная для более удобного взаимодействия с ISS Московской биржи.

Установить ее можно при помощи менеджера NuGet пакетов.

Install-Package Api.Moex -Version 2.0.0

Ключевым элементом библиотеки является класс Moex. При помощи него можно совершать запросы к ISS и получать ответ в виде объекта MoexResponse или дочернего от него. MoexResponse хранит в себе строку ответа на запрос.

Согласно документации ISS Московской биржи ответ на запрос можно получить в виде json, csv или xml файла (пример запроса http://iss.moex.com/iss/index.json). В зависимости от вида файла данные нужно считывать по разному.

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

Response-классы для csv и xml файлов в библиотеке отсутствуют. Но вы можете написать их сами, унаследовавшись от MoexResponse, и получать в качестве ответов на запрос.

Примеры использования

Получение ответа на запрос и вывод в консоль.

var moex = new Moex();
var response = await moex.GetAsync<MoexResponse>(@"http://iss.moex.com/iss/index.json");
Console.WriteLine(response.Content);

Получение таблицы engines из запроса в виде DataTable.

var moex = new Moex();
using (var response = await moex.GetAsync<MoexJsonResponse>(@"http://iss.moex.com/iss/index.json"))
{
    var enginesDataTable = response["engines"].ToDataTable();
}

Заполнение созданной таблицы DataTable. В данном случае будут заполняться только те колонки, что есть в DataTable. При этом наименование таблицы и колонок должны совпадать с их наименованиями в json ответе на запрос.

Если указать тип значение в колонке, то данные будут преобразованы к нему (по умолчанию string).

var engines = new DataTable("engines");
engines.Columns.Add("id", typeof(int));
engines.Columns.Add("name");

var moex = new Moex();
using (var response = await moex.GetAsync<MoexJsonResponse>(@"http://iss.moex.com/iss/index.json"))
{
    if (response["engines"].TryCompleteDataTable(ref engines))
    {
        Console.WriteLine("Таблица engines заполнилась!");
    }
}

Построчное преобразование данных.

var moex = new Moex();
using (var response = await moex.GetAsync<MoexJsonResponse>(@"http://iss.moex.com/iss/index.json"))
{
    var boards = response["boards"].ConvertDataTo(row => new
    {
        Id = row["id"].GetInt32(),
        BoardId = row["boardid"].GetString(),
        IsTraded = row["is_traded"].GetInt32() == 0 ? false : true,
    }).ToArray();
}

api.moex's People

Contributors

gaynutdinovlinar avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.