Readdy Write  
0,00 €
Your View Money
Views: Count
Self 20% 0
Your Content 60% 0

Users by Links 0
u1*(Content+Views) 10% 0
Follow-Follower 0
s2*(Income) 5% 0

Count
Followers 0
Login Register as User

Asp.Net Core: Api Schnittstelle erstellen

26.06.2018 (👁8783)

Asp.Net Core: Api Schnittstelle erstellen

Zum Erstellen einer Api Schnittstellen in Asp.Net Core Projekten erstellt man in der dem Controller Verzeichnis einen Unterordner /api

In diesen fügt man dann im Context->Add new Item->Add Scaffold

Einen API Controller-Empty ein

Nach der MVC Nomenklatur benennt man diesen wie den Controller für Webseiten selbst

Hier ProjectsController

Api Controller ->Methode erstellen

Im Controller muss man nun nur eine Standard Methode beschreiben wie Index (Default) und als Ausgabe die Liste in return zuweisen.

Dieses Beispiel erstellt eine Liste mit Projekten

vom Daten-Modell Typ Project

        // GET: /api/index

        public List<ProjectModel> Index()

        {

            ///-------------< Index >------------- 

 

            //--< Get Linq.Query >--

            //*gets last 10 Projects with View_Sum

            var query = (from n in _dbContext.tbl_Projects

                         where n.IsDraft == false

                         orderby n.IDProject descending

                         select  n ).Take(50);

            //--</ Get Linq.Query >--

 

 

            //----< fill Data_to_View >----

            List<ProjectModel> dataList = query.ToList<ProjectModel>();

            

 

            //< out >

            //*output to client

            return dataList;

            //</ out >

            ///-------------</ Index >------------- 

        }

Test Ausgabe im Browser

Im Browser kann man zum Testen einfach die Standard-Adresse für MVC Projecte eingeben

https://localhost:44390/api/projects

dann werden die Ergebnisse als json Liste ausgegeben

Beispiel HTML-Texte Ausgabe über json api Liste

{"idProject":411,"idOwner":1,"title":"🎬 Fliese mit der Flex schneiden","text":"  man kann Fliesen ganz gut mit der Flex schneiden hierzu muss man aber 3 dinge beachten  mit einem Holz kann man die Scheibe stabilisieren die Fliese von oben schneiden die Trennscheibe in die richtige Richtung drehen lassen der Schnitt ist meistens leicht schräg die untere Seite ergibt einen sauberen Schnitt die vordere Seite franst leicht aus Deshalb die rückseitige verwenden ","html":"                                                                                                    \r\n            <div>man kann Fliesen ganz gut mit der Flex schneiden. hierzu muss man aber 3 dinge beachten:</div><div><a href=\"" rel=\"nofollow\" style=\"background-color: rgb(255, 255, 255);\"><iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/R-pkGs_y9Og\" frameborder=\"0\" allow=\"autoplay; encrypted-media\" allowfullscreen=\"\"></iframe></a><br></div><div>mit einem Holz kann man die Scheibe stabilisieren</div><div>die Fliese von oben schneiden</div><div>die Trennscheibe in die richtige Richtung drehen lassen</div><div>der Schnitt ist meistens leicht schräg: die untere Seite ergibt einen sauberen Schnitt, die vordere Seite franst leicht aus</div><div><br></div><div>Deshalb die rückseitige verwenden.</div><img src=\"/User_Files/Notes/Images/Image_411_0_blog.jpg\" style=\"width: 100%; max-width: 100%; height: auto; display: inline-block;\"><br><br><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div>    \r\n                \r\n                \r\n            ","urlRef":null,"folder":"Bauen;Fliesen;Tipp","dtEdit":"2018-06-10T12:03:07.047","dtCreated":"2018-06-10T11:58:20.15","isDraft":false},{"idProject":410,"idOwner":1,"title":"🎬 Kartoffel als Setzling Unterlage für Pfirsiche","text":" ","html":"                                                    \r\n          

Ausgabe Im Chrome Browser

Kompletter Code zur Api-Controller

Datei, Code: Controllers/api/ProjectsController.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Threading.Tasks;

using Freelance.Data;

using Freelance.Models;

using Microsoft.AspNetCore.Http;

using Microsoft.AspNetCore.Mvc;

 

namespace Freelance.Controllers.api

{

 

    [Produces("application/json")]

    [Route("api/Projects")]

    public class ProjectsController : Controller

    {

        //--------------< Class: Controller >---------------------

        #region Controller Init

        private readonly ApplicationDbContext _dbContext;

        

        public ProjectsController(ApplicationDbContext dbContext)

        {

            //----< Init: Controller >----

            _dbContext = dbContext;

            //----</ Init: Controller >----

        }

        #endregion

 

 

 

        // GET: /api/index

        public List<ProjectModel> Index()

        {

            ///-------------< Index >------------- 

 

            //--< Get Linq.Query >--

            //*gets last 10 Projects with View_Sum

            var query = (from n in _dbContext.tbl_Projects

                         where n.IsDraft == false

                         orderby n.IDProject descending

                         select  n ).Take(50);

            //--</ Get Linq.Query >--

 

 

            //----< fill Data_to_View >----

            List<ProjectModel> dataList = query.ToList<ProjectModel>();

            

 

            //< out >

            //*output to client

            return dataList;

            //</ out >

            ///-------------</ Index >------------- 

        }

 

 

 

        //--------------</ Class: Controller >---------------------

    }

}