2017-08-08 13 views
1

私はapp-functionを使い慣れていません。しかし、私は正常にいくつかのJSONを受け入れるカスタムアプリケーション関数を作成しました。ファイル機能に基づくファイル機能

私のJSONがアップロードされるとき、私のapp-functionはスキーマに対してそれを検証したいと思うでしょう。 JSONは、何が起こっているのかをより正確に記述するために、POST要求の本文になります。ここで

http://www.newtonsoft.com/json/help/html/JsonSchema.htm

検証のための基本的なコードです:私はロードして確認することを保存したローカルファイルを持っていると思います上記のコードは

string schemaJson 

を持って

string schemaJson = @"{ 
    'description': 'A person', 
    'type': 'object', 
    'properties': 
    { 
    'name': {'type':'string'}, 
    'hobbies': { 
     'type': 'array', 
     'items': {'type':'string'} 
    } 
    } 
}"; 

JsonSchema schema = JsonSchema.Parse(schemaJson); 

JObject person = JObject.Parse(@"{ 
    'name': 'James', 
    'hobbies': ['.NET', 'Blogging', 'Reading', 'Xbox', 'LOLCATS'] 
}"); 


IList<string> messages; 
bool valid = person.IsValid(schema, out messages); 

実際にはいくつかのファイルがあり、http-requestのパラメータの1つがjson-schema-validateに使用するファイルをトリガーします。

"mycustomerid"がhttp-requestのヘッダー(またはクエリ文字列など)に渡され、mycustomeridの値によって入力jsonを検証するスキーマが駆動されることを想像してみましょう。

私はいくつかのファイルを持っています。

customer_1.jsonschema 
customer_2.jsonschema 
customer_3.jsonschema 

これらのファイルは私のかなりシンプルなアプリ機能に必要な格納するためのベストプラクティスは何ですか?

public static async Task<object> Run(HttpRequestMessage req, TraceWriter log) 
{ 

APPEND:

これはここに受け入れ答えを使用して、私の最終的な答えだったと私はここで見つける:How to get local file system path in azure websites

  string rootDirectory = string.Empty; 
      if (!string.IsNullOrEmpty(Environment.GetEnvironmentVariable("HOME"))) 
      { 
       /* running in azure */ 
       rootDirectory = Environment.GetEnvironmentVariable("HOME") + "\\site\\wwwroot"; 
      } 
      else 
      { 
       /* in visual studio, local debugging */ 
       rootDirectory = "."; 
      } 
     string path = rootDirectory + "\\MySubFolder\\MyFile.jsonschema"; 

答えて

3

ステップ1でファイル 'schema.json' を作成します。 'D:\ home \ site \ wwwroot \ HttpTriggerCSharp1'(Kuduコンソールを使用) https://github.com/projectkudu/kudu/wiki/Kudu-console

ステップ2. HttpTrのコード文字列としてファイルの内容を読み取るのにiger:

using System.Net; 

public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log) 
{ 
    var path = Environment.GetEnvironmentVariable("HOME").ToString() + "\\site\\wwwroot\\HttpTriggerCSharp1\\schema.json"; 

    string readText = File.ReadAllText(path); 

    log.Info(readText); 
    return req.CreateResponse(HttpStatusCode.OK, "Hello "); 
} 
+0

アレクセイ、私が「地方」と「紺碧」について学んだことを私の追記を参照してください。 – granadaCoder

関連する問題