2015-10-01 13 views
7

Swagger'ı kullanmakta oldukça yeniyim. Projem Laravel ile olduğundan, API'mı belgelemek için Swaggerevel kullanıyorum. Aşağıdaki gibi It localhost:8000/docsGerekli @SWG Info() bulunamadı

erişmeye çalışan
[INFO] Required @SWG\Info() not found 

    get /api/resource.json 
----------------------- 
1 operations documented 
----------------------- 
Written to /home/admin/api/gevme-api/storage/docs/api-docs.json 

, Düzgün bir oluşturulan json API göstermektedir göstermektedir

./vendor/bin/swagger app/ -o storage/docs/api-docs.json 

üretmek için çalışılmıştır sırasında. Ancak localhost:8000/api-docs'a erişmeye çalıştığımda, aynı hata mesajı tekrar gösteriliyor.

ErrorException in Logger.php line 38: 
Required @SWG\Info() not found 
in Logger.php line 38 
at HandleExceptions->handleError('1024', 'Required @SWG\Info() not found', '/home/admin/api/gevme-api/vendor/zircote/swagger-php/src/Logger.php', '38', array('entry' => 'Required @SWG\Info() not found', 'type' => '1024')) 
at trigger_error('Required @SWG\Info() not found', '1024') in Logger.php line 38 
at Logger->Swagger\{closure}('Required @SWG\Info() not found', '1024') 
at call_user_func(object(Closure), 'Required @SWG\Info() not found', '1024') in Logger.php line 68 
at Logger::notice('Required @SWG\Info() not found') in AbstractAnnotation.php line 365 
at AbstractAnnotation->validate() in Analysis.php line 284 
at Analysis->validate() in functions.php line 46 
at Swagger\scan('/home/admin/api/gevme-api/modules/Api', array('exclude' => array('/home/admin/api/gevme-api/storage', '/home/admin/api/gevme-api/tests', '/home/admin/api/gevme-api/resources/views', '/home/admin/api/gevme-api/config', '/home/admin/api/gevme-api/vendor'))) in routes.php line 39 
at SwaggervelServiceProvider->{closure}() 
at call_user_func_array(object(Closure), array()) in Route.php line 155 
at Route->runCallable(object(Request)) in Route.php line 130 
at Route->run(object(Request)) in Router.php line 704 
at Router->Illuminate\Routing\{closure}(object(Request)) 
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 139 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) 
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103 
at Pipeline->then(object(Closure)) in Router.php line 706 
at Router->runRouteWithinStack(object(Route), object(Request)) in Router.php line 671 
at Router->dispatchToRoute(object(Request)) in Router.php line 631 
at Router->dispatch(object(Request)) in Kernel.php line 236 
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request)) 
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 139 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in OAuthExceptionHandlerMiddleware.php line 36 
at OAuthExceptionHandlerMiddleware->handle(object(Request), object(Closure)) 
at call_user_func_array(array(object(OAuthExceptionHandlerMiddleware), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in ShareErrorsFromSession.php line 49 
at ShareErrorsFromSession->handle(object(Request), object(Closure)) 
at call_user_func_array(array(object(ShareErrorsFromSession), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in StartSession.php line 62 
at StartSession->handle(object(Request), object(Closure)) 
at call_user_func_array(array(object(StartSession), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in AddQueuedCookiesToResponse.php line 37 
at AddQueuedCookiesToResponse->handle(object(Request), object(Closure)) 
at call_user_func_array(array(object(AddQueuedCookiesToResponse), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in EncryptCookies.php line 59 
at EncryptCookies->handle(object(Request), object(Closure)) 
at call_user_func_array(array(object(EncryptCookies), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in CheckForMaintenanceMode.php line 42 
at CheckForMaintenanceMode->handle(object(Request), object(Closure)) 
at call_user_func_array(array(object(CheckForMaintenanceMode), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) 
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103 
at Pipeline->then(object(Closure)) in Kernel.php line 122 
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 87 
at Kernel->handle(object(Request)) in index.php line 54 
at require_once('/home/admin/api/gevme-api/public/index.php') in server.php line 21 

cevap

15

Sorun şu ki: @SWG\Info bloğunu kaçırıyorsunuz. API'niz hakkında bazı yaygın bilgileri swagger'a söyleyen bir blok.

Genellikle bunu, swagger JSON oluşturan ayrı bir denetleyiciye koyarım. Bu durum söz konusu olduğunda

/** 
* @SWG\Swagger(
*  schemes={"http","https"}, 
*  host="api.host.com", 
*  basePath="/", 
*  @SWG\Info(
*   version="1.0.0", 
*   title="This is my website cool API", 
*   description="Api description...", 
*   termsOfService="", 
*   @SWG\Contact(
*    email="[email protected]" 
*  ), 
*   @SWG\License(
*    name="Private License", 
*    url="URL to the license" 
*  ) 
* ), 
*  @SWG\ExternalDocumentation(
*   description="Find out more about my website", 
*   url="http..." 
* ) 
*) 
*/ 

class SwaggerController extends... 
+4

Aynı hatayı, ancak DarkaOnLine/SwaggerLume kullanarak Lumen framework ile aldım. Bu dosyayı düzenlemek için nerede bulabilirim? –

+0

Swagger belgelerinizi nereye yerleştirirseniz yerleştirin. Genellikle manuel olarak oluşturmanız gerekir. Lumen hakkında bilmiyorum. – Mathew

+0

@AhmedZelfani bunu nasıl düzelttiniz? – user269867

0

ve denetleyici vb içinde Swagger tanımı var ama yine de yorum göremiyoruz Eğer opcache aşağıdaki ayarları olmadığından emin olun: İşte bir örnek yapılandırma:

ayarları kaldır üstünde ve
opcache.save_comments=1 
opcache.load_comments=1 

belgeleri oluşturmak için havalı için gerekli docblox değil yükleyecektir.

+0

ne? Emin misiniz? –

İlgili konular