/// <summary> /// Добавить удаленное Апи /// </summary> /// <param name="remoteApi"></param> /// <returns></returns> public JsExecutorBuilder AddRemoteApi(RemoteJsOpenApi remoteApi) { if (_remoteApis.ContainsKey(remoteApi.Name)) { throw new InvalidOperationException(string.Format(ExceptionTexts.RemoteApiWithNameAlreadyRegisteredFormat, remoteApi.Name)); } _remoteApis.Add(remoteApi.Name, remoteApi); return(this); }
/// <summary> /// Отредактировать удаленное апи /// </summary> /// <param name="remoteApi"></param> /// <returns></returns> public async Task <BaseApiResponse> EditRemoteApi(RemoteJsOpenApi remoteApi) { var remoteApis = Components.RemoteApis; var hostName = remoteApi.Name; if (!await remoteApis.ContainsKeyAsync(hostName)) { return(new BaseApiResponse(false, $"Хост не найден по названию '{hostName}'")); } await remoteApis.SetValueAsync(hostName, remoteApi); return(new BaseApiResponse(true, $"Данные хоста '{hostName}' обновлены")); }
/// <summary> /// Добавить удаленное Апи /// </summary> /// <param name="remoteApi"></param> /// <returns></returns> public async Task <BaseApiResponse> AddRemoteApi(RemoteJsOpenApi remoteApi) { var error = string.Format(ExceptionTexts.RemoteApiWithNameAlreadyRegisteredFormat, remoteApi.Name); var remoteApis = Components.RemoteApis; var key = remoteApi.Name; if (await remoteApis.ContainsKeyAsync(key)) { return(new BaseApiResponse(false, error)); } await remoteApis.SetValueAsync(key, remoteApi); return(new BaseApiResponse(true, "Добавлено")); }
internal static async Task <RemoteJsOpenApiDocs> GetRemoteDocsViaHttpRequest(this IServerJsHttpClient httpClient, RemoteJsOpenApi remoteApi) { var response = await httpClient.GetAsync(remoteApi.HostUrl, remoteApi.Name, HttpPaths.GetDocs); var docsRecord = new RemoteJsOpenApiDocs { Description = remoteApi, ReceivingException = response.ExcepionData, DocsReceivedOnUtc = DateTime.UtcNow }; try { if (response.IsSuccessfull()) { docsRecord.Docs = response.GetResult <JsOpenApiDocs>(); docsRecord.IsDocsReceived = true; } else { docsRecord.IsDocsReceived = false; docsRecord.DocsReceivedOnUtc = DateTime.UtcNow; } } catch (Exception ex) { docsRecord.IsDocsReceived = false; docsRecord.ReceivingException = new ExcepionData { Message = ex.Message, StackTrace = ex.StackTrace }; } return(docsRecord); }