# Alla ricerca di esempi di utilizzo di add\_api\_key\_scope

**URL:** <https://meta.discourse.org/t/looking-for-usage-examples-of-add-api-key-scope/198939>\
**Category:** Development\
**Tags:** rest-api\
**Created:** [2 Agosto 2021, 8:30pm UTC](https://meta.discourse.org/t/looking-for-usage-examples-of-add-api-key-scope/198939 "2021-08-02T20:30:53Z")\
**Posts on this page:** 1\
**Showing post:** 1

<div class="post-metadata">

**Author:** ![Hooksmith](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/hooksmith/32/142826_2.png) [@Hooksmith](https://meta.discourse.org/u/Hooksmith)\
**Post date:** [2 Agosto 2021, 8:30pm UTC](https://meta.discourse.org/t/looking-for-usage-examples-of-add-api-key-scope/198939/1 "2021-08-02T20:30:53Z")

</div>

Ciao a tutti,

Sto cercando di lavorare con questo metodo su `Plugin::Instance`: [discourse/lib/plugin/instance.rb at 06c60b017c86ddab489fd3d30c951c10b5c4d281 · ayampenyetan/discourse · GitHub](https://github.com/ayampenyetan/discourse/blob/06c60b017c86ddab489fd3d30c951c10b5c4d281/lib/plugin/instance.rb#L801-L803)

Ho provato a cercare usi esistenti di questo metodo nell’intero codice di Discourse o su GitHub, ma sembra che non venga effettivamente utilizzato da nessuna parte al di fuori dei casi di test (per quanto riguarda il codice pubblicamente accessibile).

Qualcuno può spiegarmi le seguenti cose:

- Qual è il modo corretto per ottenere un’istanza di `Plugin::Instance` in un plugin in modo che il metodo possa essere invocato?
- Qual è il momento giusto per chiamare il metodo collegato sopra? Se creo un nuovo endpoint nel mio plugin, dovrei inserire questa chiamata dopo la creazione dell’endpoint? Dovrebbe essere prima o all’interno di `after_initialize`?
- Il codice seguente sembra registrare lo scope, ma quando provo a chiamare l’endpoint che ho registrato con una chiave API da amministratore che possiede tale scope, sembra non riesca a trovare l’azione. L’endpoint funziona correttamente quando lo chiamo con una chiave API da amministratore che ha tutti gli scope. Perché non funziona, cosa sto facendo male?
- Ho provato ad aggiungere una voce `urls` alle azioni, ma sembra non venga rilevata. Come posso aggiungere con successo un elenco di URL a cui si applica lo scope a questa struttura?

```ruby
after_initialize do

    module ::ApiKeyScopeTest
        class Engine < ::Rails::Engine
            engine_name "api_key_scope_test"
            isolate_namespace ApiKeyScopeTest
        end
    end

    class ApiKeyScopeTest::ApiKeyScopeTestController < ::ApplicationController

        def action
            ...
        end

    end

    ApiKeyScopeTest::Engine.routes.draw do
        post "/admin/plugins/api-key-scope-test" => "api_key_scope_test#action", constraints: AdminConstraint.new
    end

    Discourse::Application.routes.append do
        mount ::ApiKeyScopeTest::Engine, at: "/"
    end

    plugin = Plugin::Instance.new # Nota: non è chiaro se questo sia corretto

    plugin.add_api_key_scope(
        :test_scope,
        {
            post: {
                actions: %w[api_key_scope_test#action]
            }
        }
    )

end

```

---

_[View the full topic](https://meta.discourse.org/t/looking-for-usage-examples-of-add-api-key-scope/198939)._
