Giter Club home page Giter Club logo

backend's Introduction

Backend сайта GraphLabs

О текущей версии

Первая наипростейшая версия, собранная по сэмплам одаты.

Использует InMemory-базу данных, так что изменения между запусками сохраняться пока не будут.

Содержит единственную сущность - заголовок модуля-задания TaskModule.

Технологии

  • Asp.Net Core
  • OData Core
  • EntityFramework Core

Подготовка к первому запуску

  • Установите Visual Studio или Rider последней версии
  • Установите Net Core SDK 2.1
  • Установите сертификат для отладки на localhost'е через https, выполнив: dotnet dev-certs https --trust

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

Метаданные

https://localhost:5001/odata/$metadata

<edmx:Edmx Version="4.0">
    <edmx:DataServices>
        <Schema Namespace="GraphLabs.Backend.Domain">
            <EntityType Name="TaskModule">
                <Key>
                    <PropertyRef Name="Id"/>
                </Key>
                <Property Name="Id" Type="Edm.Int64" Nullable="false"/>
                <Property Name="Name" Type="Edm.String"/>
                <Property Name="Description" Type="Edm.String"/>
                <Property Name="Version" Type="Edm.String"/>
            </EntityType>
        </Schema>
        <Schema Namespace="Default">
            <EntityContainer Name="Container">
                <EntitySet Name="TaskModules" EntityType="GraphLabs.Backend.Domain.TaskModule"/>
            </EntityContainer>
        </Schema>x
    </edmx:DataServices>
</edmx:Edmx>

Список всех модулей-заданий

GET https://localhost:5001/odata/TaskModules

{
  "@odata.context": "https://localhost:5001/odata/$metadata#TaskModules",
  "value": [
    {
      "Id": 1,
      "Name": "Изоморфизм",
      "Description": "Даны два графа. Доказать их изоморфность путём наложения вершин одного графа на вершины другого, или обосновать, почему это невозможно.",
      "Version": "2.0"
    },
    {
      "Id": 2,
      "Name": "КСС",
      "Description": "Дан граф. Найти все компоненты сильной связанности.",
      "Version": "2.0"
    }
  ]
}

Добавление нового модуля-задания

POST https://localhost:5001/odata/TaskModules

Content-Type: application/json

Content:

{
  "Id": 3,
  "Name": "Подграфы",
  "Description": "Длинное-предлинное описание создаваемого модуля-задания.",
  "Version": "2.1"
}

Запрос с фильтрацией

Запросим заголовок модуля с Id = 2:

GET https://localhost:5001/odata/TaskModules?$filter=Id eq 2

{
  "@odata.context": "https://localhost:5001/odata/$metadata#TaskModules",
  "value": [
    {
      "Id": 2,
      "Name": "КСС",
      "Description": "Дан граф. Найти все компоненты сильной связанности.",
      "Version": "2.0"
    }
  ]
}

Запрос с фильтрацией, лимитом и упорядочиванием

Обратите внимание, у нас нужно писать $ перед каждой частью запроса (бывает упрощённый синтаксис, но у нас он пока не поддержан).

GET https://localhost:5001/odata/TaskModules?$filter=version eq '2.0'&$top=3&$orderby=Name desc

{
  "@odata.context": "https://localhost:5001/odata/$metadata#TaskModules",
  "value": [
    {
      "Id": 2,
      "Name": "КСС",
      "Description": "Дан граф. Найти все компоненты сильной связанности.",
      "Version": "2.0"
    },
    {
      "Id": 1,
      "Name": "Изоморфизм",
      "Description": "Даны два графа. Доказать их изоморфность путём наложения вершин одного графа на вершины другого, или обосновать, почему это невозможно.",
      "Version": "2.0"
    }
  ]
}

backend's People

Contributors

svtz avatar

Watchers

James Cloos avatar  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.