Рерайт на сайте, подбор синонимов через API. Получение текста по API

Интеграция с sinoni.men - вводим текст, создаем через API задание, проверяем готовность задания на рерайт по ID. 

SaveItem формы: 

CREATE PROCEDURE [dbo].[fm_watch_synonym_saveItem]
   @username nvarchar(256), 
   @itemID int, 
   @fieldtext nvarchar(max) = ''
   -- необходимо обязательно перечислить все поля в форме (@fieldcode и т.д.)
AS
BEGIN
	-- 1 SELECT (Result, Msg)
	select 1 Result, ' ' Msg
    
    select 'apirequest' type, 'sinomyn' code, 'text' p1_name, @fieldtext p1_value 
END

JS: 

<script>
$(function(){
	as.formcallbacks["watch_synonym_saveItem"] = function(data, params){
		console.log("xxx", data.additionalData);
      
      	var ss = JSON.parse(data.additionalData)[0].items;
   	    var resp = $.grep(ss, function(v) {
    		return v.key == "response" 
		});
      console.log(resp)
      	if(resp.length>0 && resp[0].value2) {
        	var el = JSON.parse(resp[0].value2);
          	console.log("createTaskAPIResult", el);
        	if(el.status=='error') {
            	as.sys.bootstrapAlert(el.error.msg || "Что-то пошло не так. Не удалось создать задание на рерайт.", {type: "danger"});
              	return;              	
            }
          	var s = "Создано задание на рерайт, по нажатию на кнопку ниже можно проверить его готовность:";
          	s += "<input type='text' class='form-control synTextID' value='"+el.result.id+"'/>";
          	s+="<a href='#' class='btn btn-primary synCheckTextID' title='Это идентификатор задания'>Проверить готовность задания</a>";
        	// "{"status":"success","result":{"id":"8debd3a9b9712f5596e98efb72e55_______","token":"e52f3e7f8__________"}}"
          	$('.synCont2').html(s);
          	return;
        }
      	as.sys.bootstrapAlert("Что-то пошло не так", {type: "danger"});
              
	}
  	$(document).delegate('.synCheckTextID', ' click', function(e){
    	e.preventDefault();
        var textID = $('.synTextID').val();
        if(!textID) {
          $('.synTextID').focus();
          return;
        }
      	as.sys.request("synonym", "getTextByID", {
            data: { textID: textID },
            onSuccess: function (data) {
              	var ss = JSON.parse(data.additionalData)[0].items;
              	var resp = $.grep(ss, function(v) {
    				return v.key == "response" 
			  	});
      		  	console.log(resp)
      			if(resp.length>0 && resp[0].value2) {
        			var el = JSON.parse(resp[0].value2);
                  	
          			console.log("APIResult", el);
                    if(el.status=='error') {
                        as.sys.bootstrapAlert(el.error.msg || "Что-то пошло не так. Не удалось создать задание на рерайт.", {type: "danger"});
                        return;              	
                    }
          			var s = "<h3 class='mt-4'>Результат обработки текста</h3>" + 
                        "<p class='my3'>" +  el.result.rewrite + "</p>"; 
          			$('.synCont2').append(s);
                  	return;
        		} 
               as.sys.bootstrapAlert("Что-то пошло не так", {type: "danger"});
                       
              	
        	}
		});
      
      
    });
});
</script>

Request API 1: 

CREATE PROCEDURE [dbo].[api_sinomyn_request]
	@parameters ExtendedDictionaryParameter READONLY,  -- входящие параметры для внутренней обработки (используйте Key, Value2)
	@username nvarchar(32)  -- текущий пользователь.
AS
BEGIN
	declare @text nvarchar(max) = (select top 1 replace(Value2, '"', '') from @parameters where [key]='text')

	-- SELECT 1  Msg, Result, Url (адрес, куда будет идти запрос)
	select '' Msg, 1 Result, 'https://api.sinoni.men' Url 

	-- SELECT 2 PARAMETERS - параметры, которые будут передаваться во внешний источник
   	select 'json' name, '{"token": "__________________", "lang": "ru", '+
        '"text": "'+@text+'"}' value, 'json' [type] -- form (в форме передается), header (в http headers), get запросы передавайте прямо в URL  

END

Request API 2: 

CREATE PROCEDURE [dbo].[api_sinomyn_getbyID_request]
	@parameters ExtendedDictionaryParameter READONLY,  -- входящие параметры для внутренней обработки (используйте Key, Value2)
	@username nvarchar(32)  -- текущий пользователь.
AS
BEGIN
	declare @id nvarchar(max) = (select top 1 Value2 from @parameters where [Key]='id')

	-- SELECT 1  Msg, Result, Url (адрес, куда будет идти запрос)
	select '' Msg, 1 Result, 'https://api.sinoni.men' Url 

	-- SELECT 2 PARAMETERS - параметры, которые будут передаваться во внешний источник
   	select 'json' name, '{"token": "_____________________", "id": "'+@id+'" }' value, 'json' [type]     
END

Другие модули

Последние обновления

SQL-инструмент для создания личных кабинетов на сайте

Суть подхода и история создания Falcon Space

Платформа Falcon Space

Это снижение стоимости владения

за счет меньшего количества людей для поддержки

Это быстрое внесение изменений

по ходу эксплуатации программы

Это современный интерфейс

полная адаптация под мобильные устройства