[{"data":1,"prerenderedAt":839},["ShallowReactive",2],{"navigation-ko":3,"navigation-v1":81,"\u002Fko\u002Fguide\u002Fresponses":146,"\u002Fko\u002Fguide\u002Fresponses-surround":540,"\u002Fko\u002Fguide\u002Fresponses-og":545},[4,55,77],{"title":5,"path":6,"stem":7,"children":8},"가이드","\u002Fko\u002Fguide","ko\u002F1.guide\u002F01.index",[9,11,15,19,23,27,31,35,39,43,47,51],{"title":10,"path":6,"stem":7},"소개",{"title":12,"path":13,"stem":14},"프롤로그","\u002Fko\u002Fguide\u002Fprologue","ko\u002F1.guide\u002F00.prologue",{"title":16,"path":17,"stem":18},"시작하기","\u002Fko\u002Fguide\u002Fgetting-started","ko\u002F1.guide\u002F02.getting-started",{"title":20,"path":21,"stem":22},"모델","\u002Fko\u002Fguide\u002Fmodels","ko\u002F1.guide\u002F03.models",{"title":24,"path":25,"stem":26},"연관관계","\u002Fko\u002Fguide\u002Frelationships","ko\u002F1.guide\u002F04.relationships",{"title":28,"path":29,"stem":30},"훅","\u002Fko\u002Fguide\u002Fhooks","ko\u002F1.guide\u002F05.hooks",{"title":32,"path":33,"stem":34},"검색","\u002Fko\u002Fguide\u002Fsearch","ko\u002F1.guide\u002F06.search",{"title":36,"path":37,"stem":38},"일괄 작업","\u002Fko\u002Fguide\u002Fbatch-operations","ko\u002F1.guide\u002F07.batch-operations",{"title":40,"path":41,"stem":42},"쿼리 파라미터","\u002Fko\u002Fguide\u002Fquery-parameters","ko\u002F1.guide\u002F08.query-parameters",{"title":44,"path":45,"stem":46},"보안","\u002Fko\u002Fguide\u002Fsecurity","ko\u002F1.guide\u002F09.security",{"title":48,"path":49,"stem":50},"응답","\u002Fko\u002Fguide\u002Fresponses","ko\u002F1.guide\u002F10.responses",{"title":52,"path":53,"stem":54},"명세","\u002Fko\u002Fguide\u002Fspecifications","ko\u002F1.guide\u002F11.specifications",{"title":56,"path":57,"stem":58,"children":59},"TypeScript SDK","\u002Fko\u002Ftypescript-sdk","ko\u002F2.typescript-sdk\u002F01.index",[60,61,64,68,71,74],{"title":10,"path":57,"stem":58},{"title":16,"path":62,"stem":63},"\u002Fko\u002Ftypescript-sdk\u002Fgetting-started","ko\u002F2.typescript-sdk\u002F02.getting-started",{"title":65,"path":66,"stem":67},"설정","\u002Fko\u002Ftypescript-sdk\u002Fconfiguration","ko\u002F2.typescript-sdk\u002F03.configuration",{"title":20,"path":69,"stem":70},"\u002Fko\u002Ftypescript-sdk\u002Fmodels","ko\u002F2.typescript-sdk\u002F04.models",{"title":24,"path":72,"stem":73},"\u002Fko\u002Ftypescript-sdk\u002Frelationships","ko\u002F2.typescript-sdk\u002F05.relationships",{"title":40,"path":75,"stem":76},"\u002Fko\u002Ftypescript-sdk\u002Fquery-parameters","ko\u002F2.typescript-sdk\u002F06.query-parameters",{"title":78,"path":79,"stem":80},"스크린캐스트","\u002Fko\u002Fscreencasts","ko\u002Fscreencasts",[82,125],{"title":83,"path":84,"stem":85,"children":86},"Guide","\u002Fv1.x\u002Fguide","v1.x\u002F1.guide\u002F01.index",[87,89,93,97,101,105,109,113,117,121],{"title":88,"path":84,"stem":85},"Introduction",{"title":90,"path":91,"stem":92},"Getting Started","\u002Fv1.x\u002Fguide\u002Fgetting-started","v1.x\u002F1.guide\u002F02.getting-started",{"title":94,"path":95,"stem":96},"Models","\u002Fv1.x\u002Fguide\u002Fmodels","v1.x\u002F1.guide\u002F03.models",{"title":98,"path":99,"stem":100},"Relationships","\u002Fv1.x\u002Fguide\u002Frelationships","v1.x\u002F1.guide\u002F04.relationships",{"title":102,"path":103,"stem":104},"Hooks","\u002Fv1.x\u002Fguide\u002Fhooks","v1.x\u002F1.guide\u002F05.hooks",{"title":106,"path":107,"stem":108},"Search","\u002Fv1.x\u002Fguide\u002Fsearch","v1.x\u002F1.guide\u002F06.search",{"title":110,"path":111,"stem":112},"Batch Operations","\u002Fv1.x\u002Fguide\u002Fbatch-operations","v1.x\u002F1.guide\u002F07.batch-operations",{"title":114,"path":115,"stem":116},"Query Parameters","\u002Fv1.x\u002Fguide\u002Fquery-parameters","v1.x\u002F1.guide\u002F08.query-parameters",{"title":118,"path":119,"stem":120},"Security","\u002Fv1.x\u002Fguide\u002Fsecurity","v1.x\u002F1.guide\u002F09.security",{"title":122,"path":123,"stem":124},"Responses","\u002Fv1.x\u002Fguide\u002Fresponses","v1.x\u002F1.guide\u002F10.responses",{"title":56,"path":126,"stem":127,"children":128},"\u002Fv1.x\u002Ftypescript-sdk","v1.x\u002F2.typescript-sdk\u002F01.index",[129,130,133,137,140,143],{"title":88,"path":126,"stem":127},{"title":90,"path":131,"stem":132},"\u002Fv1.x\u002Ftypescript-sdk\u002Fgetting-started","v1.x\u002F2.typescript-sdk\u002F02.getting-started",{"title":134,"path":135,"stem":136},"Configuration","\u002Fv1.x\u002Ftypescript-sdk\u002Fconfiguration","v1.x\u002F2.typescript-sdk\u002F03.configuration",{"title":94,"path":138,"stem":139},"\u002Fv1.x\u002Ftypescript-sdk\u002Fmodels","v1.x\u002F2.typescript-sdk\u002F04.models",{"title":98,"path":141,"stem":142},"\u002Fv1.x\u002Ftypescript-sdk\u002Frelationships","v1.x\u002F2.typescript-sdk\u002F05.relationships",{"title":114,"path":144,"stem":145},"\u002Fv1.x\u002Ftypescript-sdk\u002Fquery-parameters","v1.x\u002F2.typescript-sdk\u002F06.query-parameters",{"id":147,"title":48,"body":148,"description":534,"extension":535,"links":536,"meta":537,"navigation":226,"path":49,"seo":538,"stem":50,"__hash__":539},"docs_ko\u002Fko\u002F1.guide\u002F10.responses.md",{"type":149,"value":150,"toc":532},"minimark",[151,163,175,189,199,510,528],[152,153,154,155,162],"p",{},"Orion은 Eloquent 모델과 API 클라이언트에 반환되는 실제 응답 사이의 변환 계층으로 ",[156,157,161],"a",{"href":158,"rel":159},"https:\u002F\u002Flaravel.com\u002Fdocs\u002Feloquent-resources",[160],"nofollow","API Resources","를 사용합니다.",[152,164,165,166,170,171,174],{},"이러한 클래스가 자동으로 해석되도록 하려면 ",[167,168,169],"code",{},"App\\Http\\Resources\\\u003Cmodel>Resource"," 또는 ",[167,172,173],{},"App\\Http\\Resources\\\u003Cmodel>CollectionResource"," 패턴을 따라야 합니다.",[152,176,177,178,181,182,170,185,188],{},"예를 들어 ",[167,179,180],{},"App\\Models\\Message"," 모델이 있다면, 관련 리소스 클래스는 ",[167,183,184],{},"App\\Http\\Resources\\MessageResource",[167,186,187],{},"App\\Http\\Resources\\MessageCollectionResource","가 됩니다.",[152,190,191,192,170,195,198],{},"앱의 리소스 클래스명이 이 명명 규칙을 따르지 않거나 더 명시적으로 지정하고 싶다면, 컨트롤러의 ",[167,193,194],{},"protected $resource",[167,196,197],{},"protected $collectionResource"," 속성에 전체 네임스페이스를 포함한 리소스 클래스명을 설정하세요.",[200,201,206],"pre",{"className":202,"code":203,"language":204,"meta":205,"style":205},"language-php shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003C?php\n\nnamespace App\\Http\\Controllers\\Api;\n\nuse App\\Models\\Message;\nuse App\\Http\\Resources\\CustomMessageResource;\nuse App\\Http\\Resources\\CustomMessageCollectionResource;\n\nclass MessagesController extends ApiController\n{\n    \u002F**\n     * @var string $model\n     *\u002F\n    protected $model = Message::class;\n\n    \u002F**\n     * @var string $resource\n     *\u002F\n    protected $resource = CustomMessageResource::class;\n\n    \u002F**\n     * @var string $collectionResource\n     *\u002F\n    protected $collectionResource = CustomMessageCollectionResource::class;\n}\n","php","",[167,207,208,221,228,258,263,282,305,327,332,348,354,361,377,383,408,413,418,430,435,456,461,466,478,483,504],{"__ignoreMap":205},[209,210,213,217],"span",{"class":211,"line":212},"line",1,[209,214,216],{"class":215},"sMK4o","\u003C?",[209,218,220],{"class":219},"sTEyZ","php\n",[209,222,224],{"class":211,"line":223},2,[209,225,227],{"emptyLinePlaceholder":226},true,"\n",[209,229,231,235,239,242,245,247,250,252,255],{"class":211,"line":230},3,[209,232,234],{"class":233},"sbssI","namespace",[209,236,238],{"class":237},"sBMFI"," App",[209,240,241],{"class":215},"\\",[209,243,244],{"class":237},"Http",[209,246,241],{"class":215},[209,248,249],{"class":237},"Controllers",[209,251,241],{"class":215},[209,253,254],{"class":237},"Api",[209,256,257],{"class":215},";\n",[209,259,261],{"class":211,"line":260},4,[209,262,227],{"emptyLinePlaceholder":226},[209,264,266,269,271,273,275,277,280],{"class":211,"line":265},5,[209,267,268],{"class":233},"use",[209,270,238],{"class":219},[209,272,241],{"class":215},[209,274,94],{"class":219},[209,276,241],{"class":215},[209,278,279],{"class":219},"Message",[209,281,257],{"class":215},[209,283,285,287,289,291,293,295,298,300,303],{"class":211,"line":284},6,[209,286,268],{"class":233},[209,288,238],{"class":219},[209,290,241],{"class":215},[209,292,244],{"class":219},[209,294,241],{"class":215},[209,296,297],{"class":219},"Resources",[209,299,241],{"class":215},[209,301,302],{"class":219},"CustomMessageResource",[209,304,257],{"class":215},[209,306,308,310,312,314,316,318,320,322,325],{"class":211,"line":307},7,[209,309,268],{"class":233},[209,311,238],{"class":219},[209,313,241],{"class":215},[209,315,244],{"class":219},[209,317,241],{"class":215},[209,319,297],{"class":219},[209,321,241],{"class":215},[209,323,324],{"class":219},"CustomMessageCollectionResource",[209,326,257],{"class":215},[209,328,330],{"class":211,"line":329},8,[209,331,227],{"emptyLinePlaceholder":226},[209,333,335,339,342,345],{"class":211,"line":334},9,[209,336,338],{"class":337},"spNyl","class",[209,340,341],{"class":237}," MessagesController",[209,343,344],{"class":337}," extends",[209,346,347],{"class":237}," ApiController\n",[209,349,351],{"class":211,"line":350},10,[209,352,353],{"class":215},"{\n",[209,355,357],{"class":211,"line":356},11,[209,358,360],{"class":359},"sHwdD","    \u002F**\n",[209,362,364,367,371,374],{"class":211,"line":363},12,[209,365,366],{"class":359},"     * ",[209,368,370],{"class":369},"svl4J","@var",[209,372,373],{"class":369}," string",[209,375,376],{"class":359}," $model\n",[209,378,380],{"class":211,"line":379},13,[209,381,382],{"class":359},"     *\u002F\n",[209,384,386,389,392,395,398,401,404,406],{"class":211,"line":385},14,[209,387,388],{"class":337},"    protected",[209,390,391],{"class":215}," $",[209,393,394],{"class":219},"model ",[209,396,397],{"class":215},"=",[209,399,400],{"class":237}," Message",[209,402,403],{"class":215},"::",[209,405,338],{"class":233},[209,407,257],{"class":215},[209,409,411],{"class":211,"line":410},15,[209,412,227],{"emptyLinePlaceholder":226},[209,414,416],{"class":211,"line":415},16,[209,417,360],{"class":359},[209,419,421,423,425,427],{"class":211,"line":420},17,[209,422,366],{"class":359},[209,424,370],{"class":369},[209,426,373],{"class":369},[209,428,429],{"class":359}," $resource\n",[209,431,433],{"class":211,"line":432},18,[209,434,382],{"class":359},[209,436,438,440,442,445,447,450,452,454],{"class":211,"line":437},19,[209,439,388],{"class":337},[209,441,391],{"class":215},[209,443,444],{"class":219},"resource ",[209,446,397],{"class":215},[209,448,449],{"class":237}," CustomMessageResource",[209,451,403],{"class":215},[209,453,338],{"class":233},[209,455,257],{"class":215},[209,457,459],{"class":211,"line":458},20,[209,460,227],{"emptyLinePlaceholder":226},[209,462,464],{"class":211,"line":463},21,[209,465,360],{"class":359},[209,467,469,471,473,475],{"class":211,"line":468},22,[209,470,366],{"class":359},[209,472,370],{"class":369},[209,474,373],{"class":369},[209,476,477],{"class":359}," $collectionResource\n",[209,479,481],{"class":211,"line":480},23,[209,482,382],{"class":359},[209,484,486,488,490,493,495,498,500,502],{"class":211,"line":485},24,[209,487,388],{"class":337},[209,489,391],{"class":215},[209,491,492],{"class":219},"collectionResource ",[209,494,397],{"class":215},[209,496,497],{"class":237}," CustomMessageCollectionResource",[209,499,403],{"class":215},[209,501,338],{"class":233},[209,503,257],{"class":215},[209,505,507],{"class":211,"line":506},25,[209,508,509],{"class":215},"}\n",[511,512,514],"note",{"icon":513},"i-lucide-lightbulb",[152,515,516,519,520,523,524,527],{},[167,517,518],{},"Orion\\Http\\Resources\\Resource","와 ",[167,521,522],{},"Orion\\Http\\Resources\\CollectionResource"," 클래스 모두에서 사용할 수 있는 편리한 ",[167,525,526],{},"toArrayWithMerge"," 메서드가 있으니 한번 살펴보세요 😉",[529,530,531],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .svl4J, html code.shiki .svl4J{--shiki-light:#F76D47;--shiki-light-font-style:italic;--shiki-default:#F78C6C;--shiki-default-font-style:italic;--shiki-dark:#F78C6C;--shiki-dark-font-style:italic}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":205,"searchDepth":212,"depth":223,"links":533},[],"모델이 JSON 응답으로 변환되는 방식을 알아봅니다.","md",null,{},{"title":48,"description":534},"CFCMpZn53tNUMmpg4O2I4lpK5rBCwFJlXtObKsh6as8",[541,543],{"title":44,"path":45,"stem":46,"description":542,"children":-1},"인증, 인가, 유효성 검사에 대해 알아봅니다.",{"title":52,"path":53,"stem":54,"description":544,"children":-1},"OpenAPI 명세를 자동으로 생성하는 방법을 알아봅니다.",{"id":546,"title":122,"body":547,"description":833,"extension":535,"links":536,"meta":834,"navigation":226,"path":835,"seo":836,"stem":837,"__hash__":838},"docs_en\u002F1.guide\u002F10.responses.md",{"type":149,"value":548,"toc":831},[549,556,565,575,583,815,829],[152,550,551,552,555],{},"Orion uses ",[156,553,161],{"href":158,"rel":554},[160]," as a transformation layer between Eloquent models and actual responses that are returned to your API clients.",[152,557,558,559,561,562,564],{},"To allow these classes to be resolved automatically, they should follow the pattern: ",[167,560,169],{}," or ",[167,563,173],{},".",[152,566,567,568,570,571,561,573,564],{},"For example, if you have an ",[167,569,180],{}," model, the related resource class would be ",[167,572,184],{},[167,574,187],{},[152,576,577,578,561,580,582],{},"If resource class names in your app do not follow this naming convention or if you just would like to be more explicit, set ",[167,579,194],{},[167,581,197],{}," property on controller to a fully-qualified resource class name.",[200,584,585],{"className":202,"code":203,"language":204,"meta":205,"style":205},[167,586,587,593,597,617,621,637,657,677,681,691,695,699,709,713,731,735,739,749,753,771,775,779,789,793,811],{"__ignoreMap":205},[209,588,589,591],{"class":211,"line":212},[209,590,216],{"class":215},[209,592,220],{"class":219},[209,594,595],{"class":211,"line":223},[209,596,227],{"emptyLinePlaceholder":226},[209,598,599,601,603,605,607,609,611,613,615],{"class":211,"line":230},[209,600,234],{"class":233},[209,602,238],{"class":237},[209,604,241],{"class":215},[209,606,244],{"class":237},[209,608,241],{"class":215},[209,610,249],{"class":237},[209,612,241],{"class":215},[209,614,254],{"class":237},[209,616,257],{"class":215},[209,618,619],{"class":211,"line":260},[209,620,227],{"emptyLinePlaceholder":226},[209,622,623,625,627,629,631,633,635],{"class":211,"line":265},[209,624,268],{"class":233},[209,626,238],{"class":219},[209,628,241],{"class":215},[209,630,94],{"class":219},[209,632,241],{"class":215},[209,634,279],{"class":219},[209,636,257],{"class":215},[209,638,639,641,643,645,647,649,651,653,655],{"class":211,"line":284},[209,640,268],{"class":233},[209,642,238],{"class":219},[209,644,241],{"class":215},[209,646,244],{"class":219},[209,648,241],{"class":215},[209,650,297],{"class":219},[209,652,241],{"class":215},[209,654,302],{"class":219},[209,656,257],{"class":215},[209,658,659,661,663,665,667,669,671,673,675],{"class":211,"line":307},[209,660,268],{"class":233},[209,662,238],{"class":219},[209,664,241],{"class":215},[209,666,244],{"class":219},[209,668,241],{"class":215},[209,670,297],{"class":219},[209,672,241],{"class":215},[209,674,324],{"class":219},[209,676,257],{"class":215},[209,678,679],{"class":211,"line":329},[209,680,227],{"emptyLinePlaceholder":226},[209,682,683,685,687,689],{"class":211,"line":334},[209,684,338],{"class":337},[209,686,341],{"class":237},[209,688,344],{"class":337},[209,690,347],{"class":237},[209,692,693],{"class":211,"line":350},[209,694,353],{"class":215},[209,696,697],{"class":211,"line":356},[209,698,360],{"class":359},[209,700,701,703,705,707],{"class":211,"line":363},[209,702,366],{"class":359},[209,704,370],{"class":369},[209,706,373],{"class":369},[209,708,376],{"class":359},[209,710,711],{"class":211,"line":379},[209,712,382],{"class":359},[209,714,715,717,719,721,723,725,727,729],{"class":211,"line":385},[209,716,388],{"class":337},[209,718,391],{"class":215},[209,720,394],{"class":219},[209,722,397],{"class":215},[209,724,400],{"class":237},[209,726,403],{"class":215},[209,728,338],{"class":233},[209,730,257],{"class":215},[209,732,733],{"class":211,"line":410},[209,734,227],{"emptyLinePlaceholder":226},[209,736,737],{"class":211,"line":415},[209,738,360],{"class":359},[209,740,741,743,745,747],{"class":211,"line":420},[209,742,366],{"class":359},[209,744,370],{"class":369},[209,746,373],{"class":369},[209,748,429],{"class":359},[209,750,751],{"class":211,"line":432},[209,752,382],{"class":359},[209,754,755,757,759,761,763,765,767,769],{"class":211,"line":437},[209,756,388],{"class":337},[209,758,391],{"class":215},[209,760,444],{"class":219},[209,762,397],{"class":215},[209,764,449],{"class":237},[209,766,403],{"class":215},[209,768,338],{"class":233},[209,770,257],{"class":215},[209,772,773],{"class":211,"line":458},[209,774,227],{"emptyLinePlaceholder":226},[209,776,777],{"class":211,"line":463},[209,778,360],{"class":359},[209,780,781,783,785,787],{"class":211,"line":468},[209,782,366],{"class":359},[209,784,370],{"class":369},[209,786,373],{"class":369},[209,788,477],{"class":359},[209,790,791],{"class":211,"line":480},[209,792,382],{"class":359},[209,794,795,797,799,801,803,805,807,809],{"class":211,"line":485},[209,796,388],{"class":337},[209,798,391],{"class":215},[209,800,492],{"class":219},[209,802,397],{"class":215},[209,804,497],{"class":237},[209,806,403],{"class":215},[209,808,338],{"class":233},[209,810,257],{"class":215},[209,812,813],{"class":211,"line":506},[209,814,509],{"class":215},[511,816,817],{"icon":513},[152,818,819,820,822,823,825,826,828],{},"There is a handy ",[167,821,526],{}," method available on both ",[167,824,518],{}," and ",[167,827,522],{}," classes - take a look there 😉",[529,830,531],{},{"title":205,"searchDepth":212,"depth":223,"links":832},[],"Learn how models are transformed into JSON responses.",{},"\u002Fguide\u002Fresponses",{"title":122,"description":833},"1.guide\u002F10.responses","7PQ2D2FbZcb2loyyQ4Ue_Zrm3zVDij8eoBNZymAs1Bg",1784394460118]