2017-12-12 7 views
0

私は.netコアを初めて使用しています。
私はCPU使用率を最低限に保つ必要がある状況にあります。
私は軽量のウェブ/安心の可能性に興味を持ってきました。
とは、新しいWeb APIプロジェクトを開始し、状況は私がログファイルの多くは、私はすでにURI
ローカルホストでログを一覧表示することができます得たことで、デフォルトvaluesControllers.cs軽量安心クリック可能な結果の表示方法?

を調整:someport/API /値/
そして、私は
は、ローカルホストと入力して、簡単なTXTログファイルの内容を表示することができます。someportは/ APIは/ FITHログファイルの内容を表示します/ 5

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Threading.Tasks; 
using Microsoft.AspNetCore.Mvc; 
using System.IO; 

namespace Restview.Controllers 
{ 
[Route("api/[controller]")] 
public class ValuesController : Controller 
{ 
    const string LogFolder = @"C:\Logger\IOCount"; 
    String[] result = Directory.GetFiles(LogFolder); 

    // GET api/values 
    [HttpGet] 
    public IEnumerable<string> Get() 
    { 
     for (int i=0; i<result.Length;i++) result[i]=Path.GetFileName(result[i]); 
     return result; 
    } 

    // GET api/values/5 
    [HttpGet("{id}")] 
    public string Get(int id) 
    { 
     string[] lines = System.IO.File.ReadAllLines(result[id]); 
     string answer = "Showing : " + result[id] + "\n" + string.Join('\n',lines); 
     return answer; 
    } 
    } 
} 

localhost:someport/api/values/の結果がクリック可能になるということです。特定の行をクリックすると、そのログファイルが表示されます。localhost:someport/api/values/clickedindexが入力されました。それを達成する方法?

答えて

0

あなたはこのような何かにあなたのGet()メソッドを変更する必要があります:あなたがリストをしたい場合、あなたは出力コンテンツタイプとしてHTMLを使用する必要があります見ることができるように

// GET api/values 
public HttpResponseMessage Get() 
{ 
    var sb = new StringBuilder(); 

    sb.Append("<html><body>"); 

    for (int i = 0; i < result.Length; i++) 
    { 
     sb.Append($"<div><a href='{Url.Link("DefaultApi", new { Action = "", id = i })}'>{Path.GetFileName(result[i])}</div>"); 
    } 

    sb.Append("</body></html>"); 

    var res = Request.CreateResponse(HttpStatusCode.OK); 

    res.Content = new StringContent(sb.ToString(), Encoding.UTF8, "text/html"); 

    return res; 
} 

+0

hmmは、オプションのHTML出力とJSON生データの出力も可能です。何らかの種類のブラケットオプションを設定することで出力できます。[HttpGet] [JsonGet] ?? – user3800527

+0

これは「コンテンツネゴシエーション」と呼ばれ、[ここ](https://msdn.microsoft.com/en-us/magazine/dn574797.aspx)を読むことができます。また、いくつかのクエリパラメータを使用することもできますXML出力の場合は "?xml"のように、html出力はデフォルトとして使用されます。逆も同様です。 –

関連する問題