Интеграция с Тургенев API для проверки качества контента

Данное API позволяет проверить ваш текст на наличие различных ошибок в тексте (в первую очередь в плане SEO).

Как реализовать: 

1. Регистрация на https://turgenev.ashmanov.com и получение ключа API. 

2. Создаем API запрос turgenev в /asapi - GET, json 

3. Процедура Request для API запроса:

CREATE PROCEDURE [dbo].[api_turgenev_request]
	@parameters ExtendedDictionaryParameter READONLY, 
	@username nvarchar(32)  
AS
BEGIN
	
	declare @url nvarchar(max) = (select Value2 from @parameters where [key]='url')
	declare @class nvarchar(max) = (select Value2 from @parameters where [key]='class')
    declare @key nvarchar(max) = dbo.as_setting('turgenevKey', '______________')
    declare @type nvarchar(max) = 'risk'
    declare @more nvarchar(max) = '1'
    print @url
	-- SELECT 1  Msg, Result, Url
	select '' Msg, 1 Result, 'https://turgenev.ashmanov.com/?api='+@type+'&key='+@key+'&tbclass='+@class+'&more='+@more+'&url='+ dbo.as_urlEncode(@url) Url 

	-- SELECT 2 PARAMETERS - параметры, которые будут передаваться во внешний источник
END

Вы можете внести либо в Настройки ключ либо вписать его в текст процедуры. 

Обратите внимание, что URL страницы мы должны декодировать через as_urlEncode

3. Пишем процедуру response: 

CREATE PROCEDURE [dbo].[api_turgenev_response]
	@response nvarchar(max),
	@parameters ExtendedDictionaryParameter READONLY,  	
	@username nvarchar(32)
AS
BEGIN
	declare @pageID int = (select try_cast(Value2 as int) from @parameters where [key]= 'pageID')
	if(@pageID is not null) begin 
    	insert into kw_pageAnalyzes (pageID, created, createdBy, typeCode, JSON, summary)
        values (@pageID, getdate(), @username, 'turgenev', @response, '')
    end    
    -- SELECT 1
	select '' Msg, 1 Result, @response Response
END

В данном случае мы сохраняем весь JSON в некую таблицу с идентификатором pageID (он должен быть передан через внешнее действие, см. далее)

4. Вызываем внешнее действие apirequest (например как кнопка Save в некоторой форме): 

    	if(isnull(@purl, '') ='') begin 
        	select 'Не задан URL у страницы ' Msg, 0 Result
        	return 
        end 
    
    	select ' ' Msg, 1 Result,  'body' RefreshContainer 
        select 'apirequest' type, 'turgenev' code, 'url' p1_name, @purl p1_value,
        	'class' p2_name, '' p2_value,   -- .bl-text
            'pageID' p3_name, cast(@itemID as nvarchar) p3_value

Если мы хотим, чтобы анализ проводился не по всей странице, а только по некоторому div, то указываем этот контейнер через параметр class

5. Теперь выведем эти данные в некой таблице. Мы должны распарсить значения из JSON, а также сделать ссылки на полный отчет. GetItems для подобной таблицы: 

CREATE PROCEDURE [dbo].[crud_relPageAnalyzes_getItems]
	@filters CRUDFilterParameter READONLY,  
	@sort sql_variant,
	@direction nvarchar(8),
	@page int,
	@pageSize int,
	@username nvarchar(32)
AS
BEGIN	
	declare @pageID int
	select @pageID = try_cast(Value as int) from @filters where [Key] = 'itemID'	
	
	-- SELECT 1
	select  top 100 
      id,
      isnull([typeCode], '') [typeCode],
      iif(typeCode='turgenev', '<'+'a href="https://turgenev.ashmanov.com/?h=vkladki" target="_blank">Справка</a>','') desc_typeCode,
      createdBy + ' ' + dbo.as_timeDelay(datediff(minute,created, getdate())) + ' назад ' date,
		'<'+'a  href="'+'https://turgenev.ashmanov.com/?t=' + JSON_VALUE(json, '$.link')+'" target="_blank"><i class="fa fa-link"></i> ' +JSON_VALUE(json, '$.level') + '</a>' data, 
        '<div cl'+'ass="as-prettyJSON">'+JSON_QUERY(json, '$.details') + '</di'+'v>' [sub_data]
	from kw_pageAnalyzes
	where pageID = @PageID 
    order by  id desc
	
	-- SELECT 2
	select 1

	-- SELECT 3
    select 1 HideTitleCount, 1 Compact
	
END

 Извлекаем результаты основного вывода по странице, а также показываем детали в виде структурированного JSON ответа: 

Пройдя по ссылке в столбце Данные, вы увидите скрин из начала статьи

Документация Тургенев API  https://turgenev.ashmanov.com/?a=apikey

Falcon Space - функциональная веб-платформа разработки на узком стеке MS SQL/Bootstrap. Вводная по Falcon Space
Насколько полезной была статья?

Google поиск по нашей документации

Выгода от использования Falcon Space

В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности
Нужна бесплатная консультация?
Планируете делать веб-проект?
Сайт использует Cookie. Правила конфиденциальности OK