Проверка орфографии в тексте через Яндекс 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

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

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

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

по ходу эксплуатации программы. Как создается функционал на платформе

Это простой удобный интерфейс

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

Задать вопрос, обсудить проект
Получить оценку проекта
Создайте концепцию проекта на основе нашего шаблона и получите оценку проекта в виде КП.
Демо-сайт решений
Базисные решения, которые можно гибко адаптировать под себя: менять внешний вид, бизнес-логику и даже структуру базы данных.