Я был бы очень признателен, если бы вы указали мне правильное место или правильную идею.Я не делал C # годами, и я не уверен, что я делаю больше.
По сути, у меня есть база данных MSSQL на основе Azure, из которой мне нужно читать данные и возвращать эти данные в формате JSON для моего приложения для iPhone.API-интерфейсы Azure не позволяют вам читать напрямую из БД, но вы можете создать веб-API .Net и использовать его - так я и пошел.
Я получил первую часть на работу.В этом я могу сделать HTTP-запрос, и Azure отвечает нормально.Я также построил БД и таблицы, и я проверил все это, и это работает.Я также проверил запрос, и он хорошо работает в формате JSON.
Однако мне нужно передать данные в считыватель данных как ответ http, и я не могу понять эту часть.Приложены два ванильных файла ... один, который делает фиктивный HTTP-запрос, а другой - файл соединителя db.
Короче говоря, в файле Function1.cs мне нужно перейти от
: req.CreateResponse (HttpStatusCode.OK, "Hello" + name);to: req.CreateResponse (HttpStatusCode.OK,);
Первый файл: Function1.cs
namespace getOutageAlerts
{открытый статический класс Function1 {[FunctionName("Function1")] открытый статический асинхронный запуск задачи ([HttpTrigger (AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequestMessage req, журнал TraceWriter) {log.Info ("Триггерная функция HTTP C # обработалаrequest. ");
// parse query parameter
string name = req.GetQueryNameValuePairs()
.FirstOrDefault(q => string.Compare(q.Key, "name", true) == 0)
.Value;
if (name == null)
{
// Get request body
dynamic data = await req.Content.ReadAsAsync<object>();
name = data?.name;
}
return name == null
? req.CreateResponse(HttpStatusCode.BadRequest, "Please pass a name on the query string or in the request body")
**:req.CreateResponse(HttpStatusCode.OK, "Hello" + name);**
}
}
}
Второй файл: DBConnector.cs
using System;
using System.Data.SqlClient;
public class DBConnector
{
public DBConnector()
{
SqlConnection getalertsConnection = new SqlConnection("Server=tcp:xxxxxxxxx.database.windows.net,1433;Initial Catalog=mckMobileAppsDB;Persist Security Info=False;User ID=xxxxxxx;Password=xxxxxxxx;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;");
SqlCommand cmd = new SqlCommand();
SqlDataReader reader;
cmd.CommandText = "SELECT Date_Created As Date, Incident_Number AS Incident, Flash_Summary AS Summary, Service, Business_Impact AS Impact, Incident_Status AS Status from OutagesMobileAppNotifications FOR JSON PATH, Root('Alerts')";
cmd.CommandType = CommandType.Text;
cmd.Connection = getalertsConnection;
getalertsConnection.Open();
reader = cmd.ExecuteReader();
// Data is accessible through the DataReader object here.
getalertsConnection.Close();
}
}