내가 좋은 효과를 사용한 또 다른 옵션은, 컨텐츠 트리의 "스타"항목 및 sublayout을 사용하는 것입니다 - 당신은 그 이상을 필요로하는 경우, 당신은 아마 당신의 PROC을 재고 할 필요가
[siteroot]/API/*/*/*/*/*/*/*/*/*
위의 경로는 어디서든 1 ~ 9 세그먼트를 가질 수 있습니다 :이 목적에 전념/레이아웃 조합 , IMO. 이것은 또한 모든 Sitecore 컨텍스트를 유지합니다. Sitecore는 폴더에서 항목을 찾을 수없는 경우 범용 모든 별 항목을 찾고 시도하면 404 항목을 반환하는 대신 해당 항목을 렌더링합니다.
다음과 같은 몇 가지 방법으로 (또는 파싱을 단순화하기 위해 심도별로 분리하려는 경우 하위 레이아웃)을 사용합니다.
일반 "표준"을 따르고 GET, PUT 및 POST 호출을 사용하여 이러한 항목과 상호 작용할 수 있지만 사용자 지정 백엔드 캐싱 코드없이 Sitecore Caching을 사용할 수는 없습니다. 또는, 당신은 세 가지 다른 나무로 API를 분할 할 수 있습니다 :
[siteroot]/API/GET/*/*/*/*/*/*/*/*/*
[siteroot]/API/PUT/*/*/*/*/*/*/*/*/*
[siteroot]/API/POST/*/*/*/*/*/*/*/*/*
이는 GET 요청을 캐시 할 수 있습니다 (GET 요청은 데이터를 검색해야하기 때문에, 그것을 갱신하지 않음). 적절한 캐싱 스키마를 사용하십시오. 본질적으로 데이터, 사용자 등의 모든 순열을 기반으로 캐싱해야합니다.
여러 개의 하위 레이아웃을 만드는 경우 GET, PUT 및 POST에 대한 일반적인 방법을 처리하는 기본 클래스를 만든 다음이 클래스를 하위 레이아웃의 기본으로 사용하는 것이 좋습니다.
하위 레이아웃에서는 표준 라우팅에서와 마찬가지로 요청 개체를 가져 와서 경로를 가져 와서 쿼리를 사용하고 있는지 쿼리하고 분할하고 스위치 사례 로직을 수행하기 만하면됩니다. PUT의 경우 Response.ReadBinary()를 사용하십시오. POST의 경우 Request.Form 객체를 사용하여 모든 양식 요소를 가져 와서 제공된 정보를 처리하도록 반복합니다. 양식 데이터를 모두 하나의 JSON 객체에 넣고 문자열로 캡슐화하는 것이 가장 쉽습니다 (예 : .NET 문자열 및 따라서 하나의 단일 속성으로 표시됨) 사용자가 지정한 POST 경로에 따라 비 직렬화 할 게시물의 요소가 하나만 있습니다.
복잡합니까? 예, 작동합니까? 공유 환경 (여러 사이트)에서 파이프 라인 프로세서의 모든 사이트에 대해이 처리 작업을 원하지 않는 경우이 솔루션이 작동합니다 .MacCache를 Sitecore와 함께 사용하거나 파이프 라인을 변경하는 데 문제가없는 경우 프로세서를 사용하는 것이 더 효율적입니다.
하나의 b 컨텍스트 기반 라이프 사이클은 표준 Sitecore 페이지 (로그인 등)와 완전히 동일하므로 라이프 사이클의 모든 시점에서 다른 모든 항목과 동일한 컨트롤을 사용할 수 있습니다. 네거티브는 코드에 도달하기 전에 전체 페이지 라이프 사이클로드를 처리해야한다는 것입니다. 파이프 라인 프로세서는 Sitecore의 많은 프로세스를 건너 뛸 수 있으며 직접 필요한 데이터를 가져와 더 빨리 만들 수 있습니다.
'/ api'를'IgnoreUrlPrefixes' 설정에 추가 할 수 있습니까? –
@ Alexander : 나는 그것을 시도했지만 행동을 전혀 바꾸지 않았다. 너는 일해야하는 자격 자니? –
파이프 라인을 사용하면 Sitecore.Context의 많은 값에 대한 액세스를 유지할 수 있습니다 (예 : 데이터베이스, 사이트, 언어. – techphoria414