Проверка орфографии в тексте через Яндекс Speller

Вы можете добавить проверку орфографии прямо в личном кабинете. По нажатию на некоторую кнопку будет отправляться запрос к Яндекс Speller и выводиться таблица возможных ошибок по тексту. 

Как внедрить интеграцию: 

1. Создаем исходящий API метод с кодом yandexspell (с POST JSON)

процедура Request: 

CREATE PROCEDURE [dbo].[api_yandexspell_request]
	@parameters ExtendedDictionaryParameter READONLY,  -- входящие параметры для внутренней обработки (используйте Key, Value2)
	@username nvarchar(32)  -- текущий пользователь.
AS
BEGIN
	declare @text nvarchar(max)='', @itemID nvarchar(256), @id int
    select @itemid = isnull(Value2, Value) from @parameters where lower([Key])='itemid'
    
    if(left(@itemID, 8)='article_') begin 
    	set @id = try_cast(substring(@itemID, 9, 100) as int)
    	select top 1 @text = text1 from  as_articles 	 where id = @id
    end
	if(len(@text)=0) begin 
   		 select top 1 @text = text1 from  as_articles 	 
    end
    
    set @text = dbo.as_stripHTML(@text)
    
   -- SELECT 1  Msg, Result, Url (адрес, куда будет идти запрос)
	select '' Msg, 1 Result, 'https://speller.yandex.net/services/spellservice.json/checkText?options=4' Url   -- skip addressed

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

Процедура Response: 

CREATE PROCEDURE [dbo].[api_yandexspell_response]
	@response nvarchar(max),
	@parameters ExtendedDictionaryParameter READONLY,  -- входящие параметры для внутренней обработки (используйте Key, Value2 - те же что и на request)	
	@username nvarchar(32)
AS
BEGIN
	-- SELECT 1
	select '' Msg, 1 Result, @response Response
	-- SELECT 2 Внешние действия
END

2. Реализуем обработку вывода в таблице (обязательно ставим в настройках таблицы Источник API = yandexspell) и @filters параметр имеет тип ExtendedDictionaryParameter.

Процедура GetItems: 

CREATE PROCEDURE [dbo].[crud_spellText_getItems]
	@filters ExtendedDictionaryParameter READONLY,  	
	@sort sql_variant,
	@direction nvarchar(8),
	@page int,
	@pageSize int,
	@username nvarchar(32)
AS
BEGIN
	-- filters...
	declare @resp nvarchar(max)
	select @resp = Value2 from @filters where [Key] = 'yandexspell'
	
	SELECT word text,     
    	'Code: '+ isnull(code,'') + ', Pos: ' + isnull(pos, '') + ', Row: '+ isnull([row], '') + ', Col: '+ isnull(col, '') desc_text,
        isnull( STUFF(
            (
            SELECT ', ' + value
                FROM openjson(s) AS t 
                FOR XML PATH('')
            ), 1, 2, N''
        ), '') s
    FROM OPENJSON(@resp, '$')
    WITH (
          
            code nvarchar(512) '$.code',
			pos nvarchar(512) '$.pos',
			[row] nvarchar(512) '$.row',
			col nvarchar(512) '$.col',
			word nvarchar(max) '$.word',
			s nvarchar(max) '$.s' as json
        )
    	
    -- SELECT 2
    select 1

    -- SELECT 3
    select 1 HideTitleCount, 1 Compact
	

END

В итоге для каждой статьи можно вызвать эту таблицу в модальном окне, которая покажет ошибки в тексте. 

Примечание: 

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

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

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

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